【发布时间】:2016-08-01 14:39:48
【问题描述】:
我运行./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/lib 中不存在,而SimGrid 3.13.90 存在)?
更新:
命令locate libsimgrid.so 在终端给出:
/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
【问题讨论】:
标签: shared-libraries dynamic-linking ldd