我想要一个干净的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.
我怎么才能解决这个问题?还是做得好?
发布于 2022-03-30 07:23:30
你的问题是报价,而不是断线。错误消息指向第78行第28列(此位置旁边有一个引号)。您需要将整个参数括在引号中,并转义内部引号,这样您的target_compile_definitions
参数将变成:
"QT_MESSAGE_PATTERN=\"%{time dd:MM:yyyy-h:mm:ss:zzz} %{type} \
%{pid}\t%{message}\""
有关进一步解释,请参见here。
一个小型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}\""
)
https://stackoverflow.com/questions/71662396
复制相似问题