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