【发布时间】:2021-05-24 15:42:04
【问题描述】:
我在尝试在 CMakeLists.txt 中打印带有新行的字符串时遇到问题。
预期输出:
{file}:{line}:{column}
Message: {message}
Check: CWE-{cwe}
Type: {severity} -> {id}
Line: {line}:{column}
Stack: {callstack}
{code}
如果我尝试输入新的换行符 (\n),则会返回错误:
set(CPPCHECK_TEMPLATE "")
string(APPEND CPPCHECK_TEMPLATE "{file}:{line}:{column}\n")
string(APPEND CPPCHECK_TEMPLATE " Message: {message}\n")
string(APPEND CPPCHECK_TEMPLATE " Check: CWE-{cwe}\n")
string(APPEND CPPCHECK_TEMPLATE " Type: {severity} -> {id}\n")
string(APPEND CPPCHECK_TEMPLATE " Line: {line}:{column}\n")
string(APPEND CPPCHECK_TEMPLATE " Stack: {callstack}\n")
string(APPEND CPPCHECK_TEMPLATE "{code}\n")
实施:
add_custom_command(
COMMENT "Scanning: CPP Check\n"
TARGET ${PROJECT_NAME}
PRE_BUILD
COMMAND cppcheck
"--template=${CPPCHECK_TEMPLATE}"
VERBATIM
)
错误:
/home/wolf/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/211.7142.21/bin/cmake/linux/bin/cmake --build /home/wolf/workspace/projects/bose-connect-app-linux/src/cmake-build-debug --target clean -- -j 6
CMakeFiles/bose-connect-app-linux.dir/build.make:157: *** target pattern contains no '%'. Stop.
make[1]: *** [CMakeFiles/Makefile2:113: CMakeFiles/bose-connect-app-linux.dir/clean] Error 2
make: *** [Makefile:109: clean] Error 2
【问题讨论】:
-
嗨,@fabian。我使用这个变量的目的绝对不相关。目的可以是任何,但如果你注意我使用的是
CPPCHECK_TEMPLATE。 问题很明显,一个文本被分配给一个变量,并且该文本有新行,不显示。 在我的具体情况下,我将此文本用作 Linux 命令中的参数。您是否在本地计算机上测试过代码?顺便说一句,感谢您的评论,我添加了我在哪里使用这个变量来更好地澄清。