2016-08-01 36 views
0

Ich betreibe ./myprogram und es gibt mir eine Warnung:Wie richtig Programm gegen Bibliothek zu verknüpfen

Warning: Your program was compiled with SimGrid version 3.13.90, and then linked against SimGrid 3.13.0. Proceeding anyway. 

ldd myprogram Versuchen und es gibt folgende:

libsimgrid.so.3.13.90 => /usr/lib/libsimgrid.so.3.13.90 (0x00007f338ef47000) 

Dann gehe ich zu usr/lib und geben ll *sim* in Terminal:

lrwxrwxrwx 1 ken ken  21 июл 28 19:29 libsimgrid.so -> libsimgrid.so.3.13.90* 
-rwxrwxr-x 1 ken ken 12307480 июл 28 19:29 libsimgrid.so.3.13.90* 

In CMakeLists.txt I-Bibliothek verknüpfen simgrid in einer solchen Art und Weise:

target_link_libraries(CSim2Sim simgrid) 

Warum myprogram verbindet noch gegen SimGrid 3.13.0 (es existiert nicht in /usr/lib während SimGrid 3.13.90 der Fall ist)?

UPDATE:

Befehl locate libsimgrid.so in Ternimal gibt:

/home/ken/Downloads/simgrid-master/lib/libsimgrid.so 
/home/ken/Downloads/simgrid-master/lib/libsimgrid.so.3.13.90 
/home/ken/SimGrid/lib/libsimgrid.so 
/home/ken/SimGrid/lib/libsimgrid.so.3.13.90 
/usr/lib/libsimgrid.so 
/usr/lib/libsimgrid.so.3.13.90 

Antwort

1

Die Nachricht Buggy scheint, es ist wie Ihre Anwendung sieht tatsächlich mit 3.13.0 kompiliert wurde, und 3.13.90 libsimgrid verbunden . Die Reihenfolge wurde in der Nachricht invertiert, das werde ich beheben.

Es könnte ein Problem mit Ihren Includes sein, wenn Sie Ihren Code kompilieren, denke ich. Bitte überprüfe, dass du keine alten Versionen von msg.h/simgrid_config.h Dateien verwendest, wenn du deine App kompilierst (vielleicht gibt es noch eine in/usr/include?).

Um zu überprüfen, können Sie SIMGRID_VERSION_PATCH in simgrid_config.h suchen. es sollte 90 in einem kürzlich, nicht 0 sein.