2016-08-01 53 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.