我使用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
的情况下对此预处理程序令牌进行字符串化?
答案 0 :(得分:3)
您使用的字符getAuthPassword
和“
在C中无效:
”
您必须在CMakeLists.txt中为error: expected expression
puts(STRING);
^
<command line>:1:16: note: expanded from here
#define STRING “test”
^
1 error generated.
更改“
和”
,您的程序才会编译。