Iphone 在用户标题搜索路径中使用$(内置产品目录)

Iphone 在用户标题搜索路径中使用$(内置产品目录),iphone,ios,build,xcode4,header-files,Iphone,Ios,Build,Xcode4,Header Files,当我在用户标题搜索路径中使用$(builded\u PRODUCTS\u DIR)(如关于静态库的教程中所建议的)时,XCode 4将其解析如下: 当我使用模拟器时,这是一个问题,因为构建文件存储在Debug iphonesimulator中,而不是Debug iphoneos,并且XCode无法找到头文件 我目前的解决方法是先为iOS设备构建,然后使用模拟器。这有点乏味,而且容易出错。我做错了什么?构建产品目录应该用于Xcode的输出,在开始构建时这些目录不存在是完全合理的。不建议在这些目录

当我在
用户标题搜索路径中使用
$(builded\u PRODUCTS\u DIR)
(如关于静态库的教程中所建议的)时,XCode 4将其解析如下:

当我使用模拟器时,这是一个问题,因为构建文件存储在
Debug iphonesimulator
中,而不是
Debug iphoneos
,并且XCode无法找到头文件


我目前的解决方法是先为iOS设备构建,然后使用模拟器。这有点乏味,而且容易出错。我做错了什么?

构建产品目录应该用于Xcode的输出,在开始构建时这些目录不存在是完全合理的。不建议在这些目录中包含像用户头这样的依赖项


我的建议是将依赖头移出您正在讨论的目录。

我也遇到了同样的问题。我通过以下操作修复了它。我没有将用户标题搜索路径设置为
$(build\u PRODUCTS\u DIR)
recursive,而是将其显式设置为
$(build\u PRODUCTS\u DIR)/usr/local/include
非递归。

那么您建议如何处理同一工作区中项目的静态库头文件?只要您将其他项目的目标添加为直接依赖项,这不是很好吗?对于头文件,我会将其保留在项目中,并直接从那里引用它们-这将删除要求在编译客户端应用程序中可能使用依赖库的任何内容之前,先构建依赖库。如果您愿意,您可以将那些标题拆分为“public”v。那些“私有”的文件将被保存到它们自己的目录中,而您的应用程序将只搜索公用文件夹中的标题。对于库二进制文件,我知道您将遇到问题。可以使用构建目标信息窗口左下角的gear弹出窗口添加“构建设置条件”。从那里,您可以根据目标(模拟器、设备等)指定值,并可以使用该值告诉链接器在何处查找适当的库二进制文件。注意这将是链接应用程序的问题,而不是编译应用程序的问题。这到底是做什么的?当我使用它时,它不会找到任何其他图书馆的东西。但是如果我只是使用
${builded\u PRODUCTS\u DIR}
,那么我在内部和外部使用文件时都会遇到问题。