1

libpcapとlibsslを静的に(-staticを使用して)コンパイルしようとしていますが、リンカーで次のエラーが発生します。

more undefined references to `ASN1_const_check_infinite_end' follow myprogram       line 0, external location: /lib64/libssl.a(ssl_asn1.o)  
more undefined references to `BIO_test_flags' follow    myprogram   line 0, external location: /lib64/libssl.a(ssl_lib.o)   
------------------------truncated for brevity----------------------------------

私はubuntu11.4i686_64を使用しており、libssl.aでbIO_test_flagsをgrepするnmの結果は次のとおりです。UBIO_test_flagsは、このシンボルが未定義のシンボルであり、未定義のシンボルがすべて同じステータスであることを意味します。

このリンクの問題をどのように解決できますか?(どんなアイデアやアプローチでも大歓迎です)[静的コンパイルは私にとって必須であることに注意してください]

4

1 に答える 1

1

おそらく、静的ライブラリの1つが欠落しています。見ているだけでどちらかがわかるかもしれませんが、そうでない場合は、次の方法で把握できます。

linkコマンドに追加-tして、それが役立つかどうかを確認してください。

stracelinkコマンドを試して(gccリンカーをサブプロセスとして呼び出すため、フォークをたどる必要があることに注意してください)、見つからないライブラリファイルと、それらを探している場所を確認します。

于 2011-12-20T21:52:55.557 に答える