I'm not entirely sure what the thing to do is, as I'm not a boost
expert. I'm hoping someone might chime in with advice about the
best practice. I expect either compiling boost::python as a shared
library would fix the problem (making .so files instead of .a
files), as would specifying cxxflags='-fPIC' as an option when
compiling boost as a static library.
I advised installing all the libraries into the same directory to
simplify both the build process and usage. However, that won't
solve the build issue you currently have. Once you have pyilmbase
built and installed, you may have to specify multiple paths in
PTYHONPATH and/or LD_LIBRARY_PATH before running python code that
uses the pyilmbase extensions, otherwise you will see errors about
not being able to find the boost and/or ilmbase libraries.
Dear Peter and all community member
Thank a lot for your reply.
Today, I have to spend time on my issues that I still can not
solved. To be honnestly, I can not remember, why I could not
install pyilmbase2-2- on the same folder of ilam...
However, your last e-mail has some important information that I
need to solve first.
To resume, I download ilam2.2.0 into a "downlaod" folder and I
untar it, I cd into pyilmbase-2-2-0 in order to compile. First I
simply run that command
$ ./compile --prefix=/opt/pyilmbase2-2-0
I also "accidently" run this command
$ ./compile --prefix=/opt/ilmbase2-2-0
Both display this message
checking for boost::python... no
*** Could not run the boost::python test program, checking
why...
*** The test program could not be compiled. Is
boost::python installed?
*** Check that the cflags (below) includes the boost::python
include directory
***
*** Flags used by the test:
*** cflags: -g -O2 -I/usr/include/python2.7 -g -O2
-I/usr/include/python2.7
*** ldflags: -L/opt/ilmbase-2-2-0/lib -L/usr/lib64
-L/opt/ilmbase-2-2-0/lib -L/usr/lib64
***
*** You can also run configure with
--disable-boostpythontest to skip this test.
configure: error: Could not compile boost::python test
program.
You mentioned to check if boost has been installed. Yes, I did it without
issues. I installed boost 1.65.1 into /opt/boost_1.65.1
You also mentionned to try this following command, which
indicated where is boost installation
$ ./configure
--prefix=/opt/pyilmbase-2-2-0
--with-boost-include-dir=/opt/boost_1.65.1/include
--with-boost-lib-dir=/opt/boost_1.65.1/lib
which look now
really better, as I do not
have the error message, starting with
checking for boost::python... no
*** Could not run the boost::python test program, checking
why...
*** The test program could not be compiled. Is
boost::python installed?
As I can not find tutorial or example of pyilmbase
installation, I run the following command from pyilmbase2-2-0
untar-ed folder, just after the ./compile command
# make
which shown me errors :o(
Before shwoing the error, note that into the /etc/bashrc
file, I save the following line
export PATH=/opt/lua53/bin:$PATH
#export LD_LIBRARY_PATH=/opt/lua53/lib:$LD_LIBRARY_PATH
export
LD_LIBRARY_PATH=/opt/lua53/lib:/opt/ilmbase-2-2-0/lib
export LUA_INCLUDE_DIR=/opt/lua53/include
export LUA_LIBRARIES=/opt/lua53/lib
export PKG_CONFIG_PATH=/opt/ilmbase-2-2-0/lib/pkgconfig
Nothing is about boost. Is it important?
Here is the error message generated by make from
pyilmbase-2-2-0 folder:
address@hidden pyilmbase-2.2.0]# make
Making all in config
make[1]: Entering directory
`/root/install-package/OpenEXR/pyilmbase-2.2.0/config'
make all-am
make[2]: Entering directory
`/root/install-package/OpenEXR/pyilmbase-2.2.0/config'
make[2]: Leaving directory
`/root/install-package/OpenEXR/pyilmbase-2.2.0/config'
make[1]: Leaving directory
`/root/install-package/OpenEXR/pyilmbase-2.2.0/config'
Making all in PyIex
make[1]: Entering directory
`/root/install-package/OpenEXR/pyilmbase-2.2.0/PyIex'
/bin/sh ../libtool --tag=CXX --mode=compile g++
-DHAVE_CONFIG_H -I. -I../config -pthread
-I/opt/ilmbase-2-2-0/include/OpenEXR -I.. -I../config
-pipe -g -O2 -I/opt/boost_1.65.1/include
-I/usr/include/python2.7 -MT PyIex.lo -MD -MP -MF
.deps/PyIex.Tpo -c -o PyIex.lo PyIex.cpp
libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../config
-pthread -I/opt/ilmbase-2-2-0/include/OpenEXR -I..
-I../config -pipe -g -O2 -I/opt/boost_1.65.1/include
-I/usr/include/python2.7 -MT PyIex.lo -MD -MP -MF
.deps/PyIex.Tpo -c PyIex.cpp -fPIC -DPIC -o .libs/PyIex.o
In file included from /usr/include/python2.7/pyconfig.h:6:0,
from /usr/include/python2.7/Python.h:8,
from ./PyIex.h:45,
from PyIex.cpp:42:
/usr/include/python2.7/pyconfig-64.h:1188:0: warning:
"_POSIX_C_SOURCE" redefined [enabled by default]
#define _POSIX_C_SOURCE 200112L
^
In file included from
/usr/include/c++/4.8.2/x86_64-redhat-linux/bits/os_defines.h:39:0,
from
/usr/include/c++/4.8.2/x86_64-redhat-linux/bits/c++config.h:2097,
from /usr/include/c++/4.8.2/iosfwd:38,
from /usr/include/c++/4.8.2/ios:38,
from /usr/include/c++/4.8.2/istream:38,
from /usr/include/c++/4.8.2/sstream:38,
from ./PyIex.h:44,
from PyIex.cpp:42:
/usr/include/features.h:168:0: note: this is the location of
the previous definition
# define _POSIX_C_SOURCE 200809L
^
In file included from /usr/include/python2.7/pyconfig.h:6:0,
from /usr/include/python2.7/Python.h:8,
from ./PyIex.h:45,
from PyIex.cpp:42:
/usr/include/python2.7/pyconfig-64.h:1210:0: warning:
"_XOPEN_SOURCE" redefined [enabled by default]
#define _XOPEN_SOURCE 600
^
In file included from
/usr/include/c++/4.8.2/x86_64-redhat-linux/bits/os_defines.h:39:0,
from
/usr/include/c++/4.8.2/x86_64-redhat-linux/bits/c++config.h:2097,
from /usr/include/c++/4.8.2/iosfwd:38,
from /usr/include/c++/4.8.2/ios:38,
from /usr/include/c++/4.8.2/istream:38,
from /usr/include/c++/4.8.2/sstream:38,
from ./PyIex.h:44,
from PyIex.cpp:42:
/usr/include/features.h:170:0: note: this is the location of
the previous definition
# define _XOPEN_SOURCE 700
^
mv -f .deps/PyIex.Tpo .deps/PyIex.Plo
/bin/sh ../libtool --tag=CXX --mode=link g++ -pipe -g -O2
-I/opt/boost_1.65.1/include -I/usr/include/python2.7
-version-info 2:2:0 -no-undefined -L/opt/ilmbase-2-2-0/lib
-L/opt/boost_1.65.1/lib -L/usr/lib64 -o libPyIex.la -rpath
/opt/pyilmbase-2-2-0/lib PyIex.lo -lz -pthread
-L/opt/ilmbase-2-2-0/lib -lImath -lHalf -lIex -lIexMath
-lIlmThread -lboost_python -lpython2.7
libtool: link: g++ -shared -nostdlib
/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/crti.o
/usr/lib/gcc/x86_64-redhat-linux/4.8.5/crtbeginS.o
.libs/PyIex.o -Wl,-rpath -Wl,/opt/ilmbase-2-2-0/lib
-Wl,-rpath -Wl,/opt/ilmbase-2-2-0/lib
-L/opt/ilmbase-2-2-0/lib -L/opt/boost_1.65.1/lib
-L/usr/lib64 -lz /opt/ilmbase-2-2-0/lib/libImath.so
/opt/ilmbase-2-2-0/lib/libHalf.so
/opt/ilmbase-2-2-0/lib/libIexMath.so
/opt/ilmbase-2-2-0/lib/libIlmThread.so
/opt/ilmbase-2-2-0/lib/libIex.so -lboost_python -lpython2.7
-L/usr/lib/gcc/x86_64-redhat-linux/4.8.5
-L/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64
-L/lib/../lib64 -L/usr/lib/../lib64
-L/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../.. -lstdc++
-lm -lc -lgcc_s
/usr/lib/gcc/x86_64-redhat-linux/4.8.5/crtendS.o
/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/crtn.o
-pthread -pthread -Wl,-soname -Wl,libPyIex.so.2 -o
.libs/libPyIex.so.2.0.2
libtool: link: (cd ".libs" && rm -f "libPyIex.so.2"
&& ln -s "libPyIex.so.2.0.2" "libPyIex.so.2")
libtool: link: (cd ".libs" && rm -f "libPyIex.so"
&& ln -s "libPyIex.so.2.0.2" "libPyIex.so")
libtool: link: ( cd ".libs" && rm -f "libPyIex.la"
&& ln -s "../libPyIex.la" "libPyIex.la" )
/bin/sh ../libtool --tag=CXX --mode=compile g++
-DHAVE_CONFIG_H -I. -I../config -pthread
-I/opt/ilmbase-2-2-0/include/OpenEXR -I.. -I../config
-pipe -g -O2 -I/opt/boost_1.65.1/include
-I/usr/include/python2.7 -MT iexmodule.lo -MD -MP -MF
.deps/iexmodule.Tpo -c -o iexmodule.lo iexmodule.cpp
libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../config
-pthread -I/opt/ilmbase-2-2-0/include/OpenEXR -I..
-I../config -pipe -g -O2 -I/opt/boost_1.65.1/include
-I/usr/include/python2.7 -MT iexmodule.lo -MD -MP -MF
.deps/iexmodule.Tpo -c iexmodule.cpp -fPIC -DPIC -o
.libs/iexmodule.o
mv -f .deps/iexmodule.Tpo .deps/iexmodule.Plo
/bin/sh ../libtool --tag=CXX --mode=link g++ -pipe -g -O2
-I/opt/boost_1.65.1/include -I/usr/include/python2.7
-avoid-version -module -L/opt/ilmbase-2-2-0/lib
-L/opt/boost_1.65.1/lib -L/usr/lib64 -o iexmodule.la -rpath
/opt/pyilmbase-2-2-0/lib64/python2.7/site-packages
iexmodule.lo libPyIex.la -lboost_python -lpython2.7
libtool: link: g++ -shared -nostdlib
/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/crti.o
/usr/lib/gcc/x86_64-redhat-linux/4.8.5/crtbeginS.o
.libs/iexmodule.o -Wl,-rpath
-Wl,/root/install-package/OpenEXR/pyilmbase-2.2.0/PyIex/.libs
-Wl,-rpath -Wl,/opt/ilmbase-2-2-0/lib -Wl,-rpath
-Wl,/opt/pyilmbase-2-2-0/lib -Wl,-rpath
-Wl,/opt/ilmbase-2-2-0/lib -L/opt/ilmbase-2-2-0/lib
-L/opt/boost_1.65.1/lib -L/usr/lib64 ./.libs/libPyIex.so -lz
/opt/ilmbase-2-2-0/lib/libImath.so
/opt/ilmbase-2-2-0/lib/libHalf.so
/opt/ilmbase-2-2-0/lib/libIexMath.so
/opt/ilmbase-2-2-0/lib/libIlmThread.so
/opt/ilmbase-2-2-0/lib/libIex.so -lboost_python -lpython2.7
-L/usr/lib/gcc/x86_64-redhat-linux/4.8.5
-L/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64
-L/lib/../lib64 -L/usr/lib/../lib64
-L/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../.. -lstdc++
-lm -lc -lgcc_s
/usr/lib/gcc/x86_64-redhat-linux/4.8.5/crtendS.o
/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/crtn.o
-pthread -Wl,-soname -Wl,iexmodule.so -o .libs/iexmodule.so
/usr/bin/ld:
/opt/boost_1.65.1/lib/libboost_python.a(dict.o): relocation
R_X86_64_32 against `.rodata.str1.1' can not be used when
making a shared object; recompile with -fPIC
/opt/boost_1.65.1/lib/libboost_python.a: error adding
symbols: Bad value
collect2: error: ld returned 1 exit status
make[1]: *** [iexmodule.la] Error 1
make[1]: Leaving directory
`/root/install-package/OpenEXR/pyilmbase-2.2.0/PyIex'
make: *** [all-recursive] Error 1
address@hidden pyilmbase-2.2.0]#
I wonder, if there is an official procedure to install
pyilmbase-2.2.0
I also observed a file name install-sh. How can that
file can be usefull for the installation?
You also spoke about installing into the same folder of
ilmbase-2-2-0. What would you change regarding my about steps? To
be honst with you, last week I tried but I do not rember why, I
finally soecified a folder dedicated for pyilmbase2-2-0 in /opt/
Many many thank for your help and help from openexr community.
Cheers
Pierrot
On 12/1/17 1:21 AM, Peter Hillman
wrote:
./configure
--prefix=/opt/ilmbase-2-2-0
--with-boost-include-dir=/opt/boost/include
--with-boost-lib-dir=/opt/boost/lib