【发布时间】:2015-07-20 19:36:52
【问题描述】:
我试图在 Xcode 中传递一个编译器宏定义,它依赖于一个简单的系统 shell 命令。
我尝试的第一件事是将其添加到 Build Phases->Compile Sources 中的特定文件中,如下所示:
令我惊讶的是这不起作用,所以我尝试了这个:
这会正确打印出值,但宏未正确传递到源文件。 我认为这个不起作用,因为它创建了一个单独的 shell 实例,因此环境变量不会持续到编译阶段。
我也尝试进行 Google 搜索并查看 StackOverflow,我发现唯一有希望的是这个,它似乎没有一个可行的解决方案:XCode C/C++ Flags Bash Script
我写的代码是这样的:
#define STRINGIFY(X) #X
#define TOSTRING(X) STRINGIFY(X)
#define AT __FILE__ ":" TOSTRING(__LINE__)
NSString* getBuildHash()
{
return [NSString stringWithCString:TOSTRING(GIT_COMMIT_HASH) encoding:NSASCIIStringEncoding];
}
任何帮助将不胜感激 :) 谢谢!
【问题讨论】:
标签: ios objective-c xcode xcode6