Sunday, September 18, 2011

include "header.h" と include <header.h> とXcodeの落とし穴

#include "header.h"
#include <header.h>

"" と <>の違い

色々な人が説明しましたが、ここに再び説明します。

Xcode4での落とし穴

Xcode4の中に、Headerファイルの検索パスを設定することが可能です。ただし、Xcodeの特性の一つとして、Projectのビルド設定とTargetのビルド設定をちゃんとわからないと、意外にひかかる可能性が非常に高いです。
図1 Projectの"Always Search User Pathsの設定"


図2 Targetの"Always Search User Pathsの設定"

図1に"Always Search User Paths" はデフォルトのYESです、しかし、Targetの中には"No"です。この場合の#include <header.h> がコンパイルできない可能性が非常に高い。なぜ? それはXcodeのビルド設定の特性です。Projectの設定はすべてのTargetと共有します。図2のようにTargetは独自のビルド設定をセットすることが可能です。コンパイルする時はいつもTargetの設定を基準に準じで、コンパイルします。


解決方法


解決方法は簡単です。Targetにある"Always Search User Paths"を選定して、[fn+delete](たまに⌫のように見えます)を押して、Targetの設定を削除したら、OKです。削除したら、図3の感じです。
図3、Targetの"Always Search User Pathsを削除"







No comments:

Post a Comment