在构建过程中包含“运行脚本”阶段的输出文件

3
在Xcode 7中,您可以在“Build Phases”选项卡中创建“Run Script”阶段。在该区域的底部,有一个“Input Files”部分和一个“Output Files”部分。
我有一个脚本,在$(DERIVED_FILE_DIR)/myfile.cpp生成一个.cpp文件。该文件列在该阶段的“Output Files”部分中。但是,似乎它没有编译到我的程序中,因为链接器将其定义的符号标识为缺失。
如何告诉Xcode也编译这个文件?
1个回答

2
一种可能的解决方案(感觉像一个hack)是将构建好的文件插入到项目中,在"Utilities"栏的"Identity and Type"部分设置它的位置,然后用文本编辑器编辑项目文件中的位置以实现计算机无关性。在我的情况下,该文件条目(为了易读性加入换行符)现在看起来像这样:
DC40C4121C7FC98F0087702A /* bindings.cpp */ = {
    isa = PBXFileReference;
    lastKnownFileType = sourcecode.cpp.cpp;
    name = myfile.cpp;
    path = "$(DERIVED_FILE_DIR)/myfile.cpp";
    sourceTree = "<absolute>";
};

这被文件浏览器解释为一个绝对路径文字为 $(DERIVED_FILE_DIR)/myfile.cpp 的文件(该文件在项目浏览器中始终以红色显示),但构建系统将从正确位置获取该文件。

1
嗨,我目前在Xcode 8.3.2中遇到了类似的问题。尽管我明确在“运行脚本”阶段创建了文件,并在“输出文件”下指定了它,但它似乎在“编译源”中无处可见,因此我无法将其添加到项目中。有没有什么办法可以解决这个问题而不需要使用hack。谢谢! - Zohar81

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接