Bar*_*adé 4 c++ valgrind cmake ctest
打电话
ctest -j4 -DCTEST_MEMORYCHECK_COMMAND="/usr/bin/valgrind" -DMemoryCheckCommand="/usr/bin/valgrind" --output-on-failure -T MemCheck
Run Code Online (Sandbox Code Playgroud)
说
Memory checker (MemoryCheckCommand) not set, or cannot find the specified program.
Run Code Online (Sandbox Code Playgroud)
为什么它不会自动找到 valgrind,也不会在手动指定时找到?
如CTest Wiki 页面所述,CTest 从DartConfiguration.tcl构建目录中的文件中读取内存检查命令(以及其他设置)的位置。创建 dart 配置文件的一种方法是在 CMakeLists.txt 中简单地包含 CTest CMake 模块:
include (CTest)
Run Code Online (Sandbox Code Playgroud)
CTest 模块将在其中找到您的 valgrind 安装/usr/bin并MemoryCheckCommand在DartConfiguration.tcl文件中放置一个指向它的变量。