2009-10-29 138 views
26

我在Mac OS X上为我们的客户之一创建了一个静态库,以及一个用于测试静态库的小型cmd行应用程序。 cmd行项目有两个额外的库搜索路径,这意味着我在发布模式下链接到Debug版本,并且几乎疯了,所以我试图摆脱这两条路径,但我找不到它们指定的位置。我正在查看项目信息,但事实证明,它们是在目标信息中指定的。Xcode:项目设置与目标设置

我不明白区别?!为什么有两组设置,基本上是相同的?!有人可以请赐我吗?

回答

39

一个项目可以包含多个目标。例如,我编写的应用程序有四个应用程序本身,一个Quick Look插件,一个框架和一个包含可以动态加载的Mac OS 10.6特定功能的软件包。

项目设置适用于每个单一目标在项目中。如果需要,每个目标都可以覆盖个别设置 - 例如,我的项目的Target SDK设置为10.5,但特定于10.6的捆绑包的目标SDK设置为10.6。

在某些情况下,某些设置在项目设置中没有意义 - 我猜想其中的一个设置是搜索路径。

+0

推论问题:我该如何将静态库包含到cmd行应用程序项目中?通过拖放到源文件列表中?或从构建设置? – vectorizor 2009-10-29 10:49:29

+4

@iKenndac,你能解释为什么“一些设置在项目设置中没有意义”?我在每个项目中只有一个目标,我仍然对设置搜索路径感到困惑。 – topace 2011-10-21 07:42:46

8

在单个项目中经常会有多个目标 - 例如,您可能有一个框架项目,其目标是构建为动态.framework束以及构建静态库的目标。或者你的应用可能有一个构建应用程序本身的目标,以及构建它需要安装的帮助程序命令行工具的目标。

只要有可能,我建议更改最高级别的设置(在项目设置中,同时更改调试&版本配置),并且只在必要时自定义目标设置。更好的是,将尽可能多的设置移动到xcconfig文件中,这似乎是指定构建设置的更加明确的方式。