首页 > 解决方案 > 如何在clang CFLAGS(字符串文字)中#define和使用表达式

问题描述

我正在尝试Name在命令行中定义字符串文字并在我的代码中使用它,例如NSLog("%@", Name);. 我指的是这篇文章并试图将其转换为 clang/objective-c 格式。

在我的生成文件中:

clang -DName=$(printf "%s-%d" $(ls $(PWD)/.folderA/folderB | sort -V | tail -n 1) $(cat $(PWD)/folderA/folderB/$(ls $(PWD)/.folderA/folderB | sort -V | tail -n 1)))

在我的代码中:

#define STRINGIZE(x) #x
#define STRINGIZE_VALUE_OF(x) STRINGIZE(x)
NSLog(@"%@", [NSString stringWithUTF8String:STRINGIZE_VALUE_OF(Name)]);

但是,记录的输出为空。但是,如果我尝试更简单的命令,例如

clang -DName=$(PWD)

它确实记录正确。知道为什么吗?

标签: objective-cclang

解决方案


推荐阅读