如何指定Xcode存储编译后的二进制文件的位置?

kiz8lqtg  于 2023-02-05  发布在  其他
关注(0)|答案(3)|浏览(186)

我在用C++11编程,由于某种原因,我无法让gcc编译它,所以我一直使用Xcode。然而,我正在编写从命令行获取参数的程序,所以我需要能够从shell运行它们。目前,Xcode把它编译的二进制代码埋在了一个很深很不方便的地方(/Users/username/Library/Developer/Xcode/DerivedData/ProjectName/Build/Products/Debug/...哎呀!)。我希望能够为它们指定一个更好的位置,也可能是另一个名称。我使用的是Xcode 4.5.2。

9udxz4iz

9udxz4iz1#

您可以在Xcode偏好设置中为所有项目全局配置一次:
“Xcode”菜单-〉“首选项...”-〉“位置”选项卡-〉“高级...”按钮
您也可以针对每个项目进行更改。只需打开一个项目,选择其中一个项目窗口,然后:
“文件”菜单-〉“项目设置...”-〉“高级...”
除非另有配置,否则新项目将使用您在全局Xcode首选项中配置的默认值,但您可能需要为单个项目覆盖它们。
注意,如果选择“Legacy”,Xcode默认会将它们放置到Xcode项目本身所在的文件夹中,但“Legacy”也允许您使用构建设置指定位置,因此,您甚至可以为每个目标设置不同的位置。项目设置命名为Build Products PathIntermediate Build Files Path。如果您不在“传统”模式下(通过在项目上设置或对所有项目全局设置),这两个生成设置将不起作用,并被完全忽略。
还要注意的是,当你在命令行上使用xcodebuild构建Xcode项目时,不管你在Xcode或项目设置中配置了什么,它们总是在遗留模式下构建的。这很有用,因为它允许你通过覆盖上面提到的两个项目设置来覆盖命令行中的输出位置。这可以在xcconfig文件中完成,只需告诉xcodebuild从这样文件中读取配置(-xcconfig <filename>),也可以通过在xcodebuild调用的末尾添加<setting>=<value>作为参数,直接在命令行上完成。在xcconfig文件中或通过命令行指定时,这两个设置被命名为SYMROOT(= Build Products Path)和OBJROOT(= Intermediate Build Files Path)。

bq9c1y66

bq9c1y662#

您可以在首选项-〉位置中指定位置。我使用~/tmp

sxissh06

sxissh063#

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

相关问题