2009-07-18 15 views
2

私はiPhone OS 3.0のアプリケーションを構築しています GCC 4.2.1のバグのために、リンカに-all_loadフラグを追加してiPhone OS 3.0でビルドします。 しかし、その後/Users/TMC2/Programming/Client/test/build/Debug-iphoneos/test.a(ioapi.o)と/ Users/TMC2/Programming/Client/test/build/Debug-iphoneos/testに 重複シンボル_fill_fopen_filefuncを取得してください。 .a(ioapi.o)GCC 4.2.1 darwin重複するシンボルを避ける

重複するシンボルを避けるにはどうすればよいですか? アンディの提案ですか?

+0

私はこの正確な問題に取り組んでいます。これは、-all_loadフラグを持つバグです。 – fried

答えて

1

ライブラリの1つを省略してlinkerコマンドを再実行し、何が起こるかを確認してください。ビルド出力をファイルにパイプしてリンカーステートメントを編集するだけであれば、これはかなり単純です。

ソースを使ってビルドしているので、ioapi.oを生成するソースファイルの1つを空白だけを含むものに置き換えることをお勧めします。静的ライブラリは、何かが読み込み可能なモジュールとリンクするまでシンボルを解決する必要はありません。

あなたのマイルは、これらのいずれかによって異なる場合があります。

+1

あなたが気付いた場合、そのライブラリ内の同じライブラリとオブジェクトは、2度参照されます。私はこの同じ問題を抱えていますが、-all_loadが指定されている場合にのみ生成されます。 – fried

関連する問題