Kiedy próbuję zbudować ten projekt z cmake i gcc na 64-bitowym systemie Linux (Debian) maszyna, pojawia się błąd z łącznikiem:projekt budynku obejmujące cmake, jak mogę uczynić go świadoma bibliotek
Linking C executable ../../../../cpsadamsx
/home/dala/lib64/libSimTKcommon.so: undefined reference to `dlopen'
/home/dala/lib64/libSimTKcommon.so: undefined reference to `dlclose'
/home/dala/lib64/libSimTKcommon.so: undefined reference to `dlerror'
/home/dala/lib64/libSimTKcommon.so: undefined reference to `dlsym'
collect2: ld returned 1 exit status
make[2]: *** [cpsadamsx] Error 1
make[1]: *** [sundials/examples/cpodes/serial/CMakeFiles/cpsadamsx.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
Podobno dlopen, dlclose, dlerror i dlsym są odnośnikami do libdl.so. Mam tę bibliotekę w /lib64/libdl.so.2, ale dlaczego jej nie znaleziono?
Czy byłby to normalny "./configure; robić; dokonać install'-path mogłem ustawić zmienną libs i wydał polecenie configure tak (chyba):
export LIBS=-ldl && ./configure
Ale jak mogę to zrobić teraz?
UPDATE:
Wydaje się więc, że (a przynajmniej) biblioteka zostanie znaleziony, ale nie zawiera symbole w pytaniu. Być może próbuje z 32-bitową biblioteką w/lib?
Czy istnieje sposób na zdekompilowanie pliku /lib64/libdl.so.2, aby mieć referencje dlopen itp?
Problem wydaje się teraz wskazywać narzędzia do budowania poprawnej wersji biblioteki.
To może działać, ale to nie jest „mój” projekt, więc najlepiej nie chcę edytować pliki CMakeLists.txt. – dala