我在用C++11编程,由于某种原因,我无法让gcc编译它,所以我一直使用Xcode。然而,我正在编写从命令行获取参数的程序,所以我需要能够从shell运行它们。目前,Xcode把它编译的二进制代码埋在了一个很深很不方便的地方(/Users/username/Library/Developer/Xcode/DerivedData/ProjectName/Build/Products/Debug/...哎呀!)。我希望能够为它们指定一个更好的位置,也可能是另一个名称。我使用的是Xcode 4.5.2。
3条答案
按热度按时间9udxz4iz1#
您可以在Xcode偏好设置中为所有项目全局配置一次:
“Xcode”菜单-〉“首选项...”-〉“位置”选项卡-〉“高级...”按钮
您也可以针对每个项目进行更改。只需打开一个项目,选择其中一个项目窗口,然后:
“文件”菜单-〉“项目设置...”-〉“高级...”
除非另有配置,否则新项目将使用您在全局Xcode首选项中配置的默认值,但您可能需要为单个项目覆盖它们。
注意,如果选择“Legacy”,Xcode默认会将它们放置到Xcode项目本身所在的文件夹中,但“Legacy”也允许您使用构建设置指定位置,因此,您甚至可以为每个目标设置不同的位置。项目设置命名为
Build Products Path
和Intermediate Build Files Path
。如果您不在“传统”模式下(通过在项目上设置或对所有项目全局设置),这两个生成设置将不起作用,并被完全忽略。还要注意的是,当你在命令行上使用
xcodebuild
构建Xcode项目时,不管你在Xcode或项目设置中配置了什么,它们总是在遗留模式下构建的。这很有用,因为它允许你通过覆盖上面提到的两个项目设置来覆盖命令行中的输出位置。这可以在xcconfig
文件中完成,只需告诉xcodebuild
从这样文件中读取配置(-xcconfig <filename>
),也可以通过在xcodebuild
调用的末尾添加<setting>=<value>
作为参数,直接在命令行上完成。在xcconfig
文件中或通过命令行指定时,这两个设置被命名为SYMROOT
(=Build Products Path
)和OBJROOT
(=Intermediate Build Files Path
)。bq9c1y662#
您可以在首选项-〉位置中指定位置。我使用
~/tmp
:sxissh063#
或者,在Xcode中,你可以转到“构建阶段”,然后选择“新建运行脚本阶段”,然后添加一个类似于
cp /path/to/build/products/productname /path/to/where/you/want/to/copy/newproductname
的脚本。cp
是命令行中的copy命令。这是一个很好的,干净的方式来把你的构建产品放在你想要的地方。