如何指定XCode将编译的二进制文件存储在何处?

如何指定XCode将编译的二进制文件存储在何处?,xcode,binary-data,Xcode,Binary Data,我是用C++11编写的,由于某种原因,我无法让gcc编译它,所以我一直在使用XCode。但是,我正在编写从命令行获取参数的程序,因此我需要能够从shell运行它们。现在,XCode正在把它编译的二进制文件埋在一个很深很不方便的地方(/Users/username/Library/Developer/XCode/DerivedData/ProjectName/Build/Products/Debug/…yikes!)。我希望能够为他们指定一个更好的位置,可能还有另一个名字。我使用的是XCode 4

我是用C++11编写的,由于某种原因,我无法让gcc编译它,所以我一直在使用XCode。但是,我正在编写从命令行获取参数的程序,因此我需要能够从shell运行它们。现在,XCode正在把它编译的二进制文件埋在一个很深很不方便的地方(/Users/username/Library/Developer/XCode/DerivedData/ProjectName/Build/Products/Debug/…yikes!)。我希望能够为他们指定一个更好的位置,可能还有另一个名字。我使用的是XCode 4.5.2。有人能帮我解决这个问题吗?

您可以在“首选项”>“位置”中指定位置。我使用
~/tmp


您可以为Xcode首选项中的所有项目全局配置一次:

“Xcode”菜单->“首选项…”->“位置”选项卡->“高级…”按钮

或者,您可以根据每个项目更改它。只需打开一个项目,选择其中一个项目窗口,然后:

“文件”菜单->“项目设置…”->“高级…”

除非另有配置,否则新项目将使用您在全局Xcode prefs中配置的默认值,但您可能希望为单个项目覆盖这些默认值

请注意,如果选择“Legacy”,默认情况下,Xcode会将它们放在Xcode本身所在的文件夹中,但“Legacy”还允许您使用生成设置指定位置,因此您甚至可以为每个目标设置不同的位置。项目设置被命名为
生成产品路径
中间生成文件路径
。如果您未处于“遗留”模式(通过在项目上设置它或为所有项目全局设置它),则这两个生成设置没有效果,将完全忽略


还请注意,当您使用
xcodebuild
在命令行上构建Xcode项目时,无论您在Xcode或项目设置中配置了什么,它们都始终以传统模式构建。这很有用,因为它允许您通过覆盖上面提到的两个项目设置来覆盖命令行中的输出位置。这可以在
xcconfig
文件中完成,只需告诉
xcodebuild
从这样的文件中读取配置(
-xcconfig
),也可以直接在命令行上完成,方法是在
xcodebuild
调用末尾添加
=
作为参数。当在
xcconfig
文件中或通过命令行指定时,这两个设置被命名为
SYMROOT
(=
buildproducts Path
)和
OBJROOT
(=
Intermediate Build Files Path
)。

或者,在Xcode中,您可以转到“构建阶段”和“添加新的构建阶段”,选择“新的运行脚本阶段”。然后简单地添加一个类似于
cp/path/to/build/products/productname/path/to/where/you/want/to/copy/newproductname
的脚本。
cp
是命令行copy命令。这是一种很好的、干净的方式,可以将构建产品放在您想要的地方。

它的可能副本确实是。很抱歉,但是谢谢。那么这个可以关闭了。