【发布时间】:2013-04-08 22:05:01
【问题描述】:
这应该很简单,但我很难弄清楚。我有 PROJECT_NAME 作为编译器 (g++) -D 定义,我想将它与其他一些文本连接起来以形成命名空间名称。我目前的做法是这样的:
#define VERSION_NAMESPACE PROJECT_NAME ## Versioning
对于我当前的项目,我希望 VERSION_NAMESPACE 是 Syren_DLLVersioning。相反,我得到一个编译器错误:
error: 'PROJECT_NAMEVersioning' has not been declared
但根据g++ 调用,PROJECT_NAME 的定义正确:
ccache g++ ... -DPROJECT_NAME=Syren_DLL ...
为什么PROJECT_NAME 在连接发生之前没有被替换?
【问题讨论】:
标签: c++ c c-preprocessor