Bauprojekt mit cmake, wie mache ich es auf Bibliotheken aufmerksam

8

Wenn ich versuche, dieses Projekt mit cmake und gcc auf einem 64-Bit-Linux-Rechner (debian) zu erstellen, bekomme ich einen Fehler vom Linker:

%Vor%

Anscheinend sind dlopen, dlclose, dlerror und dlsym Verweise auf libdl.so. Ich habe diese Bibliothek in /lib64/libdl.so.2, aber warum wird sie nicht gefunden?

Wäre es eine normale './configure; machen; make install'-path Ich hätte die LIBS-Variable setzen und den configure-Befehl wie folgt ausgeben können (denke ich):

%Vor%

Aber wie mache ich das jetzt?

UPDATE:

So scheint es, dass die (oder mindestens eine) Bibliothek gefunden wurde, aber nicht die fraglichen Symbole enthält. Vielleicht versucht es mit der 32-Bit-Bibliothek in / lib?

Gibt es eine Möglichkeit, /lib64/libdl.so.2 zu disassemblieren, um sicherzustellen, dass es die Referenzen dlopen usw. hat?

Das Problem scheint nun die Build-Tools zur richtigen Version der Bibliothek zu führen.

    
dala 13.08.2009, 20:57
quelle

3 Antworten

25

Da diese Frage bei Google angezeigt wird und beide Antworten nicht auf die richtige Lösung verweisen, ist dies:

Fügen Sie in Ihrer CMakeLists.txt ${CMAKE_DL_LIBS} hinzu, um mit idl zu verlinken. Es sollte ähnlich aussehen:

%Vor%     
Mythli 23.11.2011 14:31
quelle
1

Wahrscheinlich müssen Sie target_link_libraries () hinzufügen - siehe Linktext

    
dimba 13.08.2009 21:06
quelle
1

Fügen Sie das in CMakeLists.txt hinzu und es sollte funktionieren:

%Vor%     
Cherif 20.01.2010 15:24
quelle

Tags und Links