2017-06-11 2 views
0

XCodeのは、このファイルでエラーを検出:XCodeの:不明なタイプ名 'SCREEN'、 'unctrl.h' ファイルに、リリースの構築だけ

/opt/local/include/unctrl.h 

メッセージ:不明なタイプ名 'SCREEN'

/opt/local/include/は、ヘッダー検索パスに含まれている必要があります。ヘッダー検索パスの前に/usr/include/を追加することに違いはありません。 XCodeはまだとにかく/opt/local/include/にあるバージョンの使用を主張しています。 /usr/include/の下にあるバージョンにはエラーを引き起こす行はありませんが、XCodeはそのバージョンを使用したくないです。

XCodeのバージョン:MacOSのアプリケーションのために、ブリッジングヘッダファイルをコンパイルするときにエラーが発生し8.3.3

「クリーンプロダクト」は違いはありません。

このエラーは、macosデプロイメントターゲットをリリース構成でのみ10.12に設定した場合にのみ発生します。

  • 展開対象10.11 - デバッグビルド - エラーなし
  • デプロイメント・ターゲット10.11 - リリースビルド - エラーなし
  • デプロイメント・ターゲット10.12 - デバッグビルド - エラーなし
  • デプロイメント・ターゲット10.12 - リリースビルド - エラー

答えて

0

私はそれを見つけました。問題は、フレームワークを持ついくつかのサブプロジェクトがあり、これらはmacos 10.12よりも少ない展開ターゲットで設定されていたことです。 10.11にメインプロジェクトのデプロイメント・ターゲットを設定する際に、それらのいくつかは、10.10の展開目標を持っていたとして

ただし、サブプロジェクトはまだ、導入目標を混ぜているだろう。なんらかの理由で、メインプロジェクトの展開ターゲットを10.11に設定した場合にのみ、メインプロジェクトの展開ターゲットを10.11に設定しても問題ありませんでした。

理由が何であれ、すべてのサブプロジェクトに対して展開ターゲットを10.12に設定し、メインプロジェクトが問題を解決しました。何が起こっている

1

は、システムからのヘッダファイルの混合物、MacPortsのは、インストールからいくつか、他の人を得ている、と彼らは互換性がないということです。これは、(ローディングunctrl.h後の画面定義)ncurses.hのSDK.12バージョンをロードするが、(画面が定義されることを想定)unctrl.hのMacPortsのバージョンです。

-cxx-isystem/opt/local/include 

:私は最終的にMacPortsのを指定することで、この問題を解決し

は、それが<>含まれるだけでなく、「」が含まれる検索パスを指定することにより、含まれるために使用されるので、ディレクトリが含まれるシステムとしてディレクトリを含めますいうよりも

-I/opt/local/include 
関連する問題