我通常可以通过
>> output_file.txt
保存 bash 命令的输出
但是当我执行
cmake
时,输出仍然发送到屏幕而不是预期的输出文件:
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D \
BUILD_NEW_PYTHON_SUPPORT=ON -D INSTALL_C_EXAMPLES=ON -D \
INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON .. >> output_file.txt
这是因为你的 cmake 输出的一部分(可能是全部,取决于情况)被流式传输到 stderr。
用它来将 stderr 重定向到 stdout:
cmake ... >> output_file.txt 2>&1
或仅将 stderr 附加到 output_file.txt:
cmake ... 2>> output_file.txt
在你的CMakeLists.txt中
set( CMAKE_EXPORT_COMPILE_COMMANDS on )
或在命令行
-D CMAKE_EXPORT_COMPILE_COMMANDS=on
输出将转到构建目录中的
compile_commands.json