5

Xcode 4.3.2では、ffmpegディストリビューションを含むiPadアプリをlibavutil.aビルドすると、正しくビルドされて実行されますが、単体テスト(Cmd-U)を実行しようとすると、次のリンカーエラーが発生します。

ld:アーキテクチャarmv7 clangの/myPath/libavutil.a(imgutils.o)の_av_image_check_sizeから/myPath/libavutil.a(imgutils.o)のcstringへの不正なテキスト再配置:エラー:リンカーコマンドが終了コード1で失敗しました(使用-v呼び出しを確認する)

これはデバイス上にあります(含まれているすべてのライブラリのファットバイナリがないため、現在シミュレータで実行できません)。

ユニットテストの実行時にリンクしないのに、正常にビルドおよび実行されるのはなぜですか?

4

4 に答える 4

11

答えは、ここから。

追加することです:

-read_only_relocs suppress

リンカーフラグに。

他のリンクはその理由を説明しています。解決策はもともとここで見つかりました。

于 2012-07-05T23:05:36.613 に答える
3

ffmpeg具体的に言うと、 for 32bit OSXlink usingで同様のリンクエラーを修正するために特に機能した行は、リンク行xcode/c++11に追加-Wl,-read_only_relocs,suppressすることでした。これのバリエーションは機能しませんでした。

于 2013-12-21T18:50:13.807 に答える
2

コンパイラで位置独立コードを有効にし、XCode でリンカー設定を行うことで、このリンカー エラーを解決しました。

于 2015-06-12T16:27:41.173 に答える