2009-06-22 90 views
0

当构建在Xcode(3.1.2)的一个项目,2个文件夹被自动添加作为头目录用“-I”选项:-Wmissing-包括-迪尔斯&自动包含标题目录

/ (ProjPath)/(ProjName)/build/(BuildConfigName)/include 
/(ProjPath)/(ProjName)/build/(ProjName).build/(BuildConfigName)/(ProjName).build/DerivedSources 

我当试图将-Wmissing-include-dirs添加到我的项目中的警告列表时意识到了这一点。 两个文件夹都发出警告。这发生在Cocoa应用程序和C++动态库上。我还没有尝试任何其他项目类型,但我想这种行为适用于任何项目类型。

  1. Xcode如何使用这些文件夹?
  2. 它们可以被避免,或者当构建开始时由Xcode自动创建?
  3. 如果不是,如何在Xcode上成功使用-Wmissing-include-dirs

谢谢。

+1

这些目录用于派生源创建头文件或部分构建生成头文件时(如构建一个动态库,该库是一个单独的目标,其包含文件随后被项目中的另一个目标,这些情况不常使用,并且在像Xcode这样的环境中,-Wmissing-include-dirs警告是几乎毫无意义。我建议你删除该警告,不要试图改变你的项目模板,除非你知道你在做什么,为什么:)你也可以通过向你的目标添加一个运行脚本构建阶段来自动创建它们。 – 2009-06-22 17:23:02

+0

我的目标是启用警告如果它可以有用。你能解释为什么它在Xcode中几乎毫无意义吗? – Guillaume 2009-06-23 08:02:52

回答

1

您可以将脚本添加到您的目标这对于你创建的目录:

右键单击目标,选择添加 - >新建构建阶段 - >新运行脚本生成阶段。 在“编译源”阶段之前,将此构建阶段拖到目标顶部。

然后进入这样一个脚本(通过双击相):

mkdir -p "${TARGET_BUILD_DIR}/include" 
mkdir -p "${PROJECT_DERIVED_FILE_DIR}" 

你可以看到在构建成绩单(各种环境变量命令Shift-B键,点击小文本图标, )