1

静的にリンクされたアプリケーション (sample.a) があり、PIC 対応のサードパーティ ライブラリ (third-party-lib.a) を使用してビルドしたいと考えています。サードパーティ ライブラリは共有ライブラリではないことに注意してください。これは PIC 対応のスタティック ライブラリです。

誰でもこれを行う方法を提案できますか?

通常は静的ライブラリをリンクするように、ライブラリをサードパーティのライブラリにリンクしようとしましたが、エラーが発生します:

/usr/lib/libc_nonshared.a(stack_chk_fail_local.oS): 関数__stack_chk_fail_local': (.text+0x10): undefined reference to内 __stack_chk_fail'

前もって感謝します。

4

1 に答える 1

0

関連するシンボルを見つけるためにnmを使用することをお勧めします。また、注意が必要な #define がないかどうかを確認することもお勧めします。プログラムの残りの部分も -fPIC でコンパイルする限り、PIC 対応の静的ライブラリ自体は、リンク時に何も変更しないはずです。

全体として、PIC 設定が原因の何かが気に入らないようです。以前に動的ライブラリを使用してコードをビルドし、静的ライブラリに切り替えたのはたまたまですか? これにより、関連する構成の一部が欠落しているなどの説明がつく可能性があります。

于 2012-06-07T07:23:31.170 に答える