0

我有一个 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 在系统上也绝对没有其他地方

4

1 回答 1

0

此问题的可能解决方案如下:

  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} )

于 2013-02-06T18:37:44.647 回答