[英]linked to non existing shared library in Cmake
我有一个CMAKE项目,正在使用pcap。 在我的cmake文件中,我有以下内容:
target_link_libraries(mylib pcap)
并安装在我的系统上,我有以下内容
在/ usr / lib中
/usr/lib/libpcap.so -> /usr/local/lib/libpcap.so
在/ usr / local / lib中
/usr/local/lib/libpcap.so.1.3.0
/usr/local/lib/libpcap.a
/usr/local/lib/libpcap.so -> /usr/local/lib/libpcap.so.1.3.0
但是当我构建代码并在可执行文件上运行ldd时,我得到了
libpcap.so.1 => not found
所以问题是对libpcap.so.1的引用来自哪里,我该如何解决? 无论是在我的cmake设置中还是在系统上进行更改。
编辑:我在系统上进行了查找,并且libpcap.so.1绝对不在系统上的其他位置
解决此问题的方法可能是以下几种:
PCAP_LIBRARIES
设置为要链接的库列表(我建议使用绝对路径) PCAP_LIBRARIES_DIR
设置为库所在目录的列分隔列表 设置您要链接的库
target_link_libraries( mylib ${PCAP_LIBRARIES} )
相应地设置目标属性
SET_TARGET_PROPERTIES( myexe PROPERTIES INSTALL_RPATH ${PCAP_LIBRARIES_DIR} )
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.