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