2016-08-01 69 views
0

我跑./myprogram鏈接程序,它給了我一個警告:如何正確地對圖書館

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

嘗試ldd myprogram,並讓以下內容:

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

然後我去usr/lib並鍵入ll *sim*終端:

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* 

CMakeLists.txt我這樣的方式鏈接庫simgrid

target_link_libraries(CSim2Sim simgrid) 

爲什麼myprogram仍然對鏈接SimGrid 3.13.0(它不/usr/libSimGrid 3.13.90確實存在)?

UPDATE

命令locate libsimgrid.so在ternimal給出:

/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 

回答

1

的消息似乎越野車,它看起來像你的應用程序實際上是用3.13.0編譯,並鏈接到libsimgrid 90年3月13日。訂單在消息中被顛倒了,我會解決這個問題。

我認爲,編譯代碼時可能會出現包含問題。請檢查在編譯應用程序時是否使用舊版本的msg.h/simgrid_config.h文件(也許在/ usr/include中還有一個?)。

要檢查,您可以在simgrid_config.h中查找SIMGRID_VERSION_PATCH。它應該是最近的一個90,而不是0.