Date
1 - 1 of 1
Building issues with gcc
Jeff Clifford <j...@...>
Hi,
I've hit upon a couple of issues when trying to build the core OpenColorIO lib. a) The following error occurs: /usr/bin/ld: CMakeFiles/OpenColorIO.dir/Baker.cpp.o: relocation R_X86_64_PC32 against `std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::basic_ostringstream(std::_Ios_Openmode)@@GLIBCXX_3.4' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: final link failed: Bad value collect2: ld returned 1 exit status make[2]: *** [src/core/libOpenColorIO.so.1.0.2] Error 1 I believe this is a known error for certain versions of gcc because OpenColorIO uses the -fvisibility-inlines-hidden flag by default (disable this flag and the error goes away). FYI my compile line for Baker.cpp was: cd /user_data/ARCHIVE/ociobuild/src/core && /tools/SITE/rnd/scripts/g++412 -DOpenColorIO_EXPORTS -DUSE_SSE -Wall -Wextra -Wshadow -Wconversion -Wcast-qual -Wformat=2 -L/apps/Linux64/gcc/gcc412/lib64 -msse2 -O2 -g -fPIC -I/user_data/ARCHIVE/imageworks-OpenColorIO-de86248/export -I/user_data/ARCHIVE/ociobuild/export -I/user_data/ARCHIVE/ociobuild/ext/dist/include -I/user_data/ARCHIVE/imageworks-OpenColorIO-de86248/ext/oiio/src/include -DTIXML_USE_STL -fPIC -fvisibility-inlines-hidden -fvisibility=hidden -o CMakeFiles/OpenColorIO.dir/Baker.cpp.o -c /user_data/ARCHIVE/imageworks-OpenColorIO-de86248/src/core/Baker.cpp b) If you need to build OpenColorIO with a centrally installed version of gcc (like we do at DNeg) rather than the default local machine's one then currently passing the required CXX_FLAGS using -D CMAKE_CXX_FLAGS="-L/apps/Linux64/gcc/gcc412/lib64" as a cmake command line argument doesn't work. The CMakeLists.txt file is overriding any options here: if(CMAKE_COMPILER_IS_GNUCXX) # Enable a bunch of compiler warnings... # http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html set(CMAKE_CXX_FLAGS "-Wall -Wextra -Wshadow -Wconversion -Wcast-qual -Wformat=2") # set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic") endif(CMAKE_COMPILER_IS_GNUCXX) rather than appending to the builder's options. Regards, Jeff. |
|