On 23/09/2014 03:21, Etienne Fleurant wrote:
> Thanks Shane, I should've thought about that.
> 
> I compiled with 'make -j 1' and indeed it now always fails at the same
> place. I also turned on CMAKE_VERBOSE_MAKEFILE. This is what I am getting:
> '''
> ...
> [ 89%] Built target imagespec_test
> make -f src/libOpenImageIO/CMakeFiles/imagespeed_test.dir/build.make
> src/libOpenImageIO/CMakeFiles/imagespeed_test.dir/depend
> make[2]: Entering directory `/root/oiio-master/dist'
> cd /root/oiio-master/dist && /usr/bin/cmake -E cmake_depends "Unix
> Makefiles" /root/oiio-master /root/oiio-master/src/libOpenImageIO
> /root/oiio-master/dist /root/oiio-master/dist/src/libOpenImageIO
> /root/oiio-master/dist/src/libOpenImageIO/CMakeFiles/imagespeed_test.dir/DependInfo.cmake
> --color=
> make[2]: Leaving directory `/root/oiio-master/dist'
> make -f src/libOpenImageIO/CMakeFiles/imagespeed_test.dir/build.make
> src/libOpenImageIO/CMakeFiles/imagespeed_test.dir/build
> make[2]: Entering directory `/root/oiio-master/dist'
> /usr/bin/cmake -E cmake_progress_report /root/oiio-master/dist/CMakeFiles
> [ 89%] Building CXX object

This part is the source compile

> src/libOpenImageIO/CMakeFiles/imagespeed_test.dir/imagespeed_test.cpp.o
> cd /root/oiio-master/dist/src/libOpenImageIO && /usr/bin/c++
> -D__STDC_LIMIT_MACROS -DOIIO_NO_SSE=1 -DUSE_FREETYPE -DUSE_OPENSSL=1
> -DUSE_BOOST_ASIO=1 -DEMBED_PLUGINS=1 -DUSE_GIF -DUSE_WEBP=1 -DPTEX_STATIC
> -fPIC -pthread -O3 -DNDEBUG -I/usr/include/OpenEXR

These -I dirs are header search paths - looking for openexr in
/usr/include/ /usr/local/include - later libs are from /root

> -I/usr/include/OpenEXR/OpenEXR -I/usr/local/include/OpenEXR
> -I/usr/local/include/OpenEXR/OpenEXR -isystem /root/boost_1_46_1/boost
> -I/root/oiio-master/src/include
> -I/root/oiio-master/dist/include/OpenImageIO
> -I/root/pipe_ready/utils/libpng/1.6.10/include
> -I/root/pipe_ready/utils/zlib/1.2.8/include
> -I/root/pipe_ready/utils/libjpeg-turbo/1.3.1/include
> -I/root/pipe_ready/utils/libtiff/4.0.3/include
> -I/root/pipe_ready/utils/giflib/5.0.5/include
> -I/root/pipe_ready/utils/libwebp/0.4.0/include/webp
> -I/usr/include/freetype2 -I/usr/include/freetype2/freetype    -Wall
> -fno-math-errno -UUSE_FIELD3D -o
> CMakeFiles/imagespeed_test.dir/imagespeed_test.cpp.o -c
> /root/oiio-master/src/libOpenImageIO/imagespeed_test.cpp

This part links it together

> Linking CXX executable imagespeed_test
> cd /root/oiio-master/dist/src/libOpenImageIO && /usr/bin/cmake -E
> cmake_link_script CMakeFiles/imagespeed_test.dir/link.txt --verbose=1
> /usr/bin/c++   -fPIC -pthread -O3 -DNDEBUG
> CMakeFiles/imagespeed_test.dir/imagespeed_test.cpp.o  -o imagespeed_test
> -rdynamic -L/root/boost_1_46_1/stage/lib libOpenImageIO.a

-L is search paths for libraries, you only have /root/boost_1_46_1
where does it find -ld -lssl -lcrypto -lfreetype ?

> /root/boost_1_46_1/stage/lib/libboost_filesystem.a
> /root/boost_1_46_1/stage/lib/libboost_regex.a
> /root/boost_1_46_1/stage/lib/libboost_system.a
> /root/boost_1_46_1/stage/lib/libboost_thread.a -ldl
> /root/pipe_ready/ilmbase/2.0.1/lib/libHalf.a
> /root/pipe_ready/ilmbase/2.0.1/lib/libIex-2_1.a
> /root/pipe_ready/ilmbase/2.0.1/lib/libImath-2_1.a
> /root/pipe_ready/ilmbase/2.0.1/lib/libIlmThread-2_1.a -lssl -lcrypto
> -lfreetype /root/pipe_ready/utils/libpng/1.6.10/lib/libpng.a
> /root/pipe_ready/utils/zlib/1.2.8/lib/libz.a
> /root/pipe_ready/utils/libtiff/4.0.3/lib/libtiff.a
> /root/pipe_ready/utils/libjpeg-turbo/1.3.1/lib/libjpeg.a
> /root/pipe_ready/utils/zlib/1.2.8/lib/libz.a
> /root/pipe_ready/utils/libtiff/4.0.3/lib/libtiff.a
> /root/pipe_ready/utils/libjpeg-turbo/1.3.1/lib/libjpeg.a
> /root/pipe_ready/utils/libwebp/0.4.0/lib/libwebp.a

Here you have /root/pipe_ready/openexr does this version match
/usr/include headers?

> /root/pipe_ready/openexr/2.1.0/lib/libIlmImf-2_1.a
> /root/pipe_ready/utils/giflib/5.0.5/lib/libgif.a
> /root/pipe_ready/ilmbase/2.0.1/lib/libHalf.a
> /root/pipe_ready/ilmbase/2.0.1/lib/libIex-2_1.a
> /root/pipe_ready/ilmbase/2.0.1/lib/libImath-2_1.a
> /root/pipe_ready/ilmbase/2.0.1/lib/libIlmThread-2_1.a
> -Wl,-rpath,/root/boost_1_46_1/stage/lib
> collect2: ld returned 1 exit status
> make[2]: *** [src/libOpenImageIO/imagespeed_test] Error 1
> make[2]: Leaving directory `/root/oiio-master/dist'
> make[1]: *** [src/libOpenImageIO/CMakeFiles/imagespeed_test.dir/all] Error 2
> make[1]: Leaving directory `/root/oiio-master/dist'
> make: *** [all] Error 2
> '''
> Still, not too sure what is going on here...
> 
> Any idea?

Just guessing, ld isn't being very helpful. You could try adding
--verbose to CMAKE_EXE_LINKER_FLAGS

Do all of the .a files exist?

-fPIC is to generate position independent code, good for dynamic
libraries but I've had errors mixing it with static libs.

You have -ldl -lssl -lcrypto -lfreetype which are dynamic libs

> Thanks in advance
> 
> 2014-09-18 23:40 GMT-04:00 Shane Ambler <[email protected]>:
> 
>> On 19/09/2014 01:34, Etienne Fleurant wrote:
>>> Hi,
>>>
>>> I am now trying to build static libraries for OIIO, without OCIO for the
>>> moment. I want to be able to compile the static libs successfully before
>> I
>>> add OCIO in the equation.
>>>
>>> My issue seems to be a linking problem towards the end of the building
>>> process, but what is strange in my case is that it doesn't seem to happen
>>> always at the exact same place.
>>>
>>
>> When running multiple tasks at the same time you can't guarantee they
>> finish in the same order they started. You get three errors as they all
>> started before the first error.
>>
>> Build with 'Make -j 1' and you should fail in the same place each time.
>>
>> Turn on CMAKE_VERBOSE_MAKEFILE to get more detailed output to help spot
>> what is wrong.
_______________________________________________
Oiio-dev mailing list
[email protected]
http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org

Reply via email to