【发布时间】:2016-11-09 02:26:14
【问题描述】:
我正在使用 CMake 编译这个示例程序:
CMakeLists.txt:
cmake_minimum_required (VERSION 3.0.0)
set(PROJECT_NAME Main)
project(${PROJECT_NAME})
add_definitions(-DSTRING=“test”)
add_executable(${PROJECT_NAME} main.c)
main.c:
#include <stdio.h>
int main(void)
{
puts(STRING);
}
编译给我以下错误:
error: expected expression puts(STRING); ^ <command line>:1:16: note: expanded from here #define STRING "test"
如何在不修改main.c 的情况下将此预处理器令牌字符串化?
【问题讨论】:
-
我希望您实际上并没有在 CMakeLists.txt 中使用“智能引号”,尽管您的示例显示了它们:
-DSTRING=“test”
标签: c string cmake c-preprocessor token