Ok, I found out it was my fault the BUILDSTATIC and LINKSTATIC variables were being ignored. I can now use BUILDSTATIC but can't use LINKSTATIC... I don't mind using OpenImageIO library as a shared library I am more worried about the external dependencies like Boost and ILMBase/OpenEXR. Am I correct in thinking that is what LINKSTATIC is for? I used CMake to create a make file in a separate directory. This is BUILDSTATIC=0 and LINKSTATIC=1 [root@linux01 oiio-RB-1.5_build]# make Scanning dependencies of target OpenImageIO_Util [ 1%] Building CXX object src/libutil/CMakeFiles/OpenImageIO_Util.dir/argparse.cpp.o [ 1%] Building CXX object src/libutil/CMakeFiles/OpenImageIO_Util.dir/errorhandler.cpp.o [ 2%] Building CXX object src/libutil/CMakeFiles/OpenImageIO_Util.dir/filesystem.cpp.o [ 3%] Building CXX object src/libutil/CMakeFiles/OpenImageIO_Util.dir/filter.cpp.o [ 3%] Building CXX object src/libutil/CMakeFiles/OpenImageIO_Util.dir/hashes.cpp.o [ 4%] Building CXX object src/libutil/CMakeFiles/OpenImageIO_Util.dir/paramlist.cpp.o [ 5%] Building CXX object src/libutil/CMakeFiles/OpenImageIO_Util.dir/plugin.cpp.o [ 5%] Building CXX object src/libutil/CMakeFiles/OpenImageIO_Util.dir/SHA1.cpp.o [ 6%] Building CXX object src/libutil/CMakeFiles/OpenImageIO_Util.dir/strutil.cpp.o [ 7%] Building CXX object src/libutil/CMakeFiles/OpenImageIO_Util.dir/sysutil.cpp.o [ 7%] Building CXX object src/libutil/CMakeFiles/OpenImageIO_Util.dir/timer.cpp.o [ 8%] Building CXX object src/libutil/CMakeFiles/OpenImageIO_Util.dir/typedesc.cpp.o [ 9%] Building CXX object src/libutil/CMakeFiles/OpenImageIO_Util.dir/ustring.cpp.o Linking CXX shared library libOpenImageIO_Util.so /usr/bin/ld: /usr/local/lib/libboost_filesystem.a(operations.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC /usr/local/lib/libboost_filesystem.a: could not read symbols: Bad value collect2: ld returned 1 exit status make[2]: *** [src/libutil/libOpenImageIO_Util.so.1.5.14] Error 1 make[1]: *** [src/libutil/CMakeFiles/OpenImageIO_Util.dir/all] Error 2 make: *** [all] Error 2 It mentions I need to recompile with -fPIC... does it mean Boost or OIIO? I build Boost from src using... ./bootstrap.sh --prefix=/usr/local ./b2 install --with=all
--------- Original Message --------- Subject: [Oiio-dev] a couple linux build related questions From: [email protected] Date: 4/1/15 12:07 pm To: [email protected] Hey Gang, Our studio is switching from Windows to Linux and I am happy to report building on Linux is indeed significantly easier than on Windows! I am a little new to this but I enabled BUILDSTATIC and LINKSTATIC in the CMake gui but when I launch oiiotool, it is not able to find the libraries it needs. Should I be able to build oiiotool with all of its dependencies statically linked? Is there some exception which would cause the two static flags to be ignored? As a workaround I am adding some extra linker flags... -Wl,-R,'$ORIGIN/../lib' this at least allows a relative path to be used for run time loading of libraries. And I can put all the libraries in one directory on the network and have oiiotool find them. Thanks, Steven _______________________________________________ Oiio-dev mailing list [email protected] http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org
_______________________________________________ Oiio-dev mailing list [email protected] http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org
