我有以下的CMakeLists.txt文件:
set( PROJECT_LINK_LIBS lib1.so lib2.so )
link_directories( path/to/libs ) # lib1.so and lib2.so are there.
add_library( ${PROJECT_NAME} SHARED ${PROJECT_SOURCES} )
target_link_libraries( ${PROJECT_NAME} ${PROJECT_LINK_LIBS} )
这段代码可以正确编译和链接。
但是当我执行以下操作时:
ldd -d mylib.so
我得到了以下内容:
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf529b000)
linux-gate.so.1 => (0xf777a000)
/lib/ld-linux.so.2 (0xf777b000)
lib1.so => /path/to/libs/lib1.so (0xf56a2000)
lib2.so => /path/to/libs/lib2.so (0xf548f000)
- 如何删除4和5的路径/path/to/libs/? 是否需要使用LD_LIBRARY_PATH?
- 自动回答:我知道1的含义是在该路径中搜索libc.so.6。但是关于2和3呢?
locate linux-gate.so.1
没有返回结果。为什么3没有=>符号?(在这里找到了答案:here)
FILE COPY
或INSTALL
。 - ToniBig