2017-04-10 15 views
3

先週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を変更

  1. を - すべてのターゲットで
  2. Symbols Hidden by Defaultを変更しますNO - すべてのターゲットで
  3. 本質的にすべてhere(完全には関連していませんが)
  4. 派生データのクリーニング/削除
  5. -fvisibility=hiddenをターゲットに追加し、すべてのココアポッドターゲットに追加しました。 (described here

いずれの洞察力も大変ありがとうございます。前もって感謝します。

UPDATE 2017年4月10日:

これはNewRelicAgentによって生成された問題であるように思われます。私のプロジェクトからcocoapodを削除すると警告が消えます。これをさらに調べる。新しいRelicのサポートから

+0

助けてください:http://stackoverflow.com/questions/9894961/strange-warnings-from-the-linker-ld – NathanOliver

+0

ありがとう、@ NathanOliver私は実際にこの投稿を見ました。私はすべてのターゲット(cocoapodターゲットを含む)を通過し、 '-fvisibility = hidden'を他のC++リンカフラグに追加しました。この警告は引き続き発生します。 – Warblr

答えて

1

応答:

私たちは、モバイルエンジニアリングチームでこれらの警告メッセージを検討しました。彼らは、これらの警告はXcode 8.2に導入された相違に関連しているとアドバイスしました。これは、Xcode 8.2で構築された最新のRelic iOSエージェントには適用されません。

また、これらの警告には悪影響はないように強調されていますが、その他の問題がある場合はお知らせください。

Xcode 8.3で作成されるエージェントの次のリリースでは、この問題が解決される可能性があります。