cmake 关于带反斜杠的换行符的警告
cmake warnings about line break with backslash
我想要一个漂亮干净的 80 列 CMakeLists.txt。我试图在其中一行中使用换行符,但随后我收到了警告(下面的第 3 行):
else()
target_compile_definitions(${PROJECT_NAME} PUBLIC
QT_MESSAGE_PATTERN="%{time dd:MM:yyyy-h:mm:ss:zzz} %{type} \
%{pid}\t%{message}"
)
endif()
这是警告:
CMake Warning (dev) at CMakeLists.txt:78:
Syntax Warning in cmake code at column 28
Argument not separated from preceding token by whitespace.
我该如何解决这个问题?还是做得正确?
您的问题出在引号上,而不是换行符上。错误消息指向第 78 行第 28 列(此位置旁边有引号)。您需要将整个参数括在引号中并转义内部引号,因此您的 target_compile_definitions
参数将变为:
"QT_MESSAGE_PATTERN=\"%{time dd:MM:yyyy-h:mm:ss:zzz} %{type} \
%{pid}\t%{message}\""
有关详细说明,请参阅 。
一个小型 CMake 测试项目如下所示:
cmake_minimum_required(VERSION 3.0)
project(quoteTest)
add_executable(quoteTest main.cpp)
target_compile_definitions(${PROJECT_NAME} PUBLIC
"QT_MESSAGE_PATTERN=\"%{time dd:MM:yyyy-h:mm:ss:zzz} %{type} \
%{pid}\t%{message}\""
)
我想要一个漂亮干净的 80 列 CMakeLists.txt。我试图在其中一行中使用换行符,但随后我收到了警告(下面的第 3 行):
else()
target_compile_definitions(${PROJECT_NAME} PUBLIC
QT_MESSAGE_PATTERN="%{time dd:MM:yyyy-h:mm:ss:zzz} %{type} \
%{pid}\t%{message}"
)
endif()
这是警告:
CMake Warning (dev) at CMakeLists.txt:78:
Syntax Warning in cmake code at column 28
Argument not separated from preceding token by whitespace.
我该如何解决这个问题?还是做得正确?
您的问题出在引号上,而不是换行符上。错误消息指向第 78 行第 28 列(此位置旁边有引号)。您需要将整个参数括在引号中并转义内部引号,因此您的 target_compile_definitions
参数将变为:
"QT_MESSAGE_PATTERN=\"%{time dd:MM:yyyy-h:mm:ss:zzz} %{type} \
%{pid}\t%{message}\""
有关详细说明,请参阅
一个小型 CMake 测试项目如下所示:
cmake_minimum_required(VERSION 3.0)
project(quoteTest)
add_executable(quoteTest main.cpp)
target_compile_definitions(${PROJECT_NAME} PUBLIC
"QT_MESSAGE_PATTERN=\"%{time dd:MM:yyyy-h:mm:ss:zzz} %{type} \
%{pid}\t%{message}\""
)