奇妙な問題に遭遇しました。
(1)まず、gcc (バージョン 2.96-110) 経由で静的ライブラリ xxx.a にモジュールをビルドします。xxx.a の一部のコードは次のようになります。
const char * const str = “hello world”
void fun()
{
printf(“%s”, str);
return;
}
(2)次に、gcc (バージョン 2.96-98) を介して xxx.a を私のプログラム EXE にリンクします。EXE では、API fun() が呼び出されます。
(3)EXE を実行すると、「hello world」ではなく「llo world」が出力されます。とても奇妙です。
gccのバージョンの違いが原因ですか?