先週Xcode 8.3に更新されました。私はこの警告解決しようとした何iOS:Xcode 8.3にアップデートした後のコンパイラでのC++警告
ld: warning: direct access in function 'std::__1::basic_filebuf<char, std::__1::char_traits<char> >::open(char const*, unsigned int)' from file '/Path/To/Derived/Data/Xcode/DerivedData/myapp/Build/Intermediates/myapp.build/Debug-iphoneos/myapp.build/Objects-normal/arm64/myapp_lto.o' to global weak symbol 'std::__1::basic_filebuf<char, std::__1::char_traits<char> >::open(char const*, unsigned int)' from file '/Path/To/Derived/Data/Xcode/DerivedData/myapp/Build/Intermediates/myapp.build/Debug-iphoneos/myapp.build/Objects-normal/arm64/myapp_lto.o' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
:私はこのコンパイラの警告を取り除くことができないようYESにSymbols Hidden by Default
を変更
- を - すべてのターゲットで
- に
Symbols Hidden by Default
を変更しますNO - すべてのターゲットで - 本質的にすべてhere(完全には関連していませんが)
- 派生データのクリーニング/削除
-fvisibility=hidden
をターゲットに追加し、すべてのココアポッドターゲットに追加しました。 (described here)
いずれの洞察力も大変ありがとうございます。前もって感謝します。
UPDATE 2017年4月10日:
これはNewRelicAgentによって生成された問題であるように思われます。私のプロジェクトからcocoapodを削除すると警告が消えます。これをさらに調べる。新しいRelicのサポートから
助けてください:http://stackoverflow.com/questions/9894961/strange-warnings-from-the-linker-ld – NathanOliver
ありがとう、@ NathanOliver私は実際にこの投稿を見ました。私はすべてのターゲット(cocoapodターゲットを含む)を通過し、 '-fvisibility = hidden'を他のC++リンカフラグに追加しました。この警告は引き続き発生します。 – Warblr