繁体   English   中英

链接到Cmake中不存在的共享库

[英]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绝对不在系统上的其他位置

解决此问题的方法可能是以下几种:

  1. PCAP_LIBRARIES设置为要链接的库列表(我建议使用绝对路径)
  2. PCAP_LIBRARIES_DIR设置为库所在目录的列分隔列表
  3. 设置您要链接的库

    target_link_libraries( mylib ${PCAP_LIBRARIES} )

  4. 相应地设置目标属性

    SET_TARGET_PROPERTIES( myexe PROPERTIES INSTALL_RPATH ${PCAP_LIBRARIES_DIR} )

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM