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 に答える