Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

Ubuntu 11.10 link errors

Developers
2013-01-11
2013-07-22
  • I'm trying to "make everything" based on the AAF-src-1.1.6.tar.gz distribution on an Ubuntu 11.10 system.
    Unfortunately I'm running into some link errors when the examples shall be build:


    make: Entering directory `/root/aaf/AAF/examples/com-api/ComCutsOnlyTest'
    Generating dependencies for CutsOnlyExample.cpp
    make: Leaving directory `/root/aaf/AAF/examples/com-api/ComCutsOnlyTest'
    make: Entering directory `/root/aaf/AAF/examples/com-api/ComCutsOnlyTest'
    g++ -c -g -Wall -Wundef -Wno-non-virtual-dtor -Werror -Wno-reorder -Wno-unused -D_DEBUG -DOM_DEBUG -DOM_STACK_TRACE_ON_ASSERT  -fsigned-char -DOM_USE_SCHEMASOFT_SS -DOM_STRUCTURED_STORAGE  -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_XOPEN_SOURCE=500 -fPIC -I../../../AAFx86_64LinuxSDK/g++/include CutsOnlyExample.cpp -o ../../../AAFx86_64LinuxSDK/g++/Examples/debug/CutsOnlyExample.o
    g++ -ldl -rdynamic ../../../AAFx86_64LinuxSDK/g++/Examples/debug/CutsOnlyExample.o -L../../../AAFx86_64LinuxSDK/g++/lib/debug -laaflib -laafiid -Xlinker -rpath -Xlinker ../../../AAFx86_64LinuxSDK/g++/bin/debug   -o ../../../AAFx86_64LinuxSDK/g++/bin/debug/ComCutsTestAAF
    ../../../AAFx86_64LinuxSDK/g++/lib/debug/libaaflib.a(aaflibsgi.o): In function `AAFLoadLibrary':
    /root/aaf/AAF/ref-impl/aaflib/aaflibsgi.cpp:95: undefined reference to `dlopen'
    /root/aaf/AAF/ref-impl/aaflib/aaflibsgi.cpp:99: undefined reference to `dlerror'
    ../../../AAFx86_64LinuxSDK/g++/lib/debug/libaaflib.a(aaflibsgi.o): In function `AAFFindSymbol':
    /root/aaf/AAF/ref-impl/aaflib/aaflibsgi.cpp:130: undefined reference to `dlsym'
    collect2: ld returned 1 exit status
    make: ***  Error 1
    make: Leaving directory `/root/aaf/AAF/examples/com-api/ComCutsOnlyTest'
    make: ***  Error 2
    make: Leaving directory `/root/aaf/AAF/examples/com-api'
    make: ***  Error 2
    make: Leaving directory `/root/aaf/AAF/examples'
    make: ***  Error 2

    Any idea what lib is missing here?

     
  • Philip de Nier
    Philip de Nier
    2013-01-11

    The dlopen/dlerror etc. symbols are present in the dynamic linker loader library (dl).  That library is provided to g++ at the start of the line: 'g++ -ldl …'. In your case (version of g++) the '-ldl' needs to be after the '-laaflib' to allow g++ to find the symbols required from aaflib.

    A quick hack (a proper fix would require more investigation by the maintainers) is to add this line at the end of AAF/build/pdefs-i586Linux.mk file:
    PLATFORMLIBS = -ldl

    Philip

     
  • Hi Philip,

    thanks a lot for the hack. It works :-)
    For anyone else trying to build on Ubuntu - I also had to install and refer libuuid as follows:
    sudo apt-get install uuid-dev
    export UUIDLIB=/usr/lib/x86_64-linux-gnu/libuuid.so

     
  • Cable
    Cable
    2013-07-22

    Thanks for the info both of you. This also resolved the same issue on Ubuntu 13.04. I already had the uuid files loaded but it wasn't looking in /usr/lib/x86_64-linux-gnu so like the previous post I added it the path and this did work.