我在make文件中使用以下代码从CPP文件访问变量VENDOR_NAME.
EXTRA_DEFINE += -DVENDOR_NAME=$(VENDOR_NAME)
VENDOR_NAME 包含一个字符串.
在我的cpp文件中,当我尝试使用此变量时,我收到的错误如下所示.
cout << VENDOR_NAME;
Feature1.cpp.bak.cpp:8:'default_Vendor'未声明(首先使用此功能)
Feature1.cpp.bak.cpp:8:(每个未声明的标识符仅报告一次
我想这是因为我的字符串不包含双引号,编译器正在考虑将VENDOR_NAME的内容作为变量.
如何将此变量作为我的CPP文件中的字符串获取,以便我可以像使用它一样使用#define它?
谢谢...
Jer*_*fin 10
您的makefile将为编译器创建命令行.出现的问题是,如果你只是用引号括起来:
EXTRA_DEFINE += -DVENDOR_NAME="$(VENDOR_NAME)"
Run Code Online (Sandbox Code Playgroud)
... shell会将引号视为简单描述命令行参数,因此它可能会将它们删除(尽管它可能取决于您正在使用的shell).为了防止这种情况,您需要使用转义引号创建参数:
EXTRA_DEFINE += -DVENDOR_NAME="\"$(VENDOR_NAME)\""
Run Code Online (Sandbox Code Playgroud)
我认为大多数典型的shell,至少对于Windows和Linux来说,都会接受反斜杠作为保留引号的转义,但我确信至少有一个围绕你不得不以不同的方式进行引用.