3

g++ で C++ スタティック ライブラリをコンパイルし、-fPIC オプションを使用しています。-fPIC オプションを使用する必要があります。これは、最終的にこのライブラリが他の静的ライブラリとリンクされて動的ライブラリを形成するためです。

スタティック ライブラリをローカルでテストすると、-fPIC オプションを含めなくても問題なく動作します。しかし、ライブラリを -fPIC でコンパイルするとすぐに、実行時に関数の 1 つを呼び出すと、セグメンテーション違反エラーが発生します。

-fPIC を含めて静的ライブラリをコンパイルすると、実行時にセグメンテーション違反が発生する理由は何ですか?

4

1 に答える 1