**在windows系统中cmake用mingw编译器执行的命令** - 1.在CMakeLists.txt文件中加入 - set(CMAKE_CXX_COMPILER "编译器的执行路径") - 2.在终端中输入一下命令进行编译 - cmake -G "MinGW Makefiles" - -G 选项指定采用的生成器 - 在根目录下输入:cmake -S . -B build -G "MinGW Makefiles" - 3.构建 - cmake --build . - 4.安装 - 指定安装目录 - cmake --install . --prefix ../install - 说明:--install(安装选项), --prefix(指定安装目录的前缀) --- **Cmake提供了一个称为CTest的测试工具。我们要做的只是在项目根目录的CMakeLists.txt文件中调用一系列的add_test命令。** ## CMake测试的语法及命令 ### 1.enable_testing() 使用enable_testing()命令可以启用测试。一定要在根目录下的CMakeLists.txt中开启,不然执行make test时会报错 ### 2.add_test() 语法: ``` add_test(NAME COMMAND [...] [CONFIGURATIONS ...] [WORKING_DIRECTORY ] [COMMAND_EXPAND_LISTS]) ``` add_test用来添加新测试: - NAME:指定本测试的名称,可以随意命名。 - COMMAND:指定测试命令行。如果\指定了一个可执行目标(由add_executable()创建),它将自动替换为生成时创建的可执行文件的位置。 - CONFIGURATIONS:Debug/Release选项可以控制在不同的编译版本下是否进行测试 - WORKING_DIRECTORY:指定要在其中执行测试的工作目录。如果未指定,测试将在当前工作目录设置为与当前源目录对应的生成目录的情况下运行。 - COMMAND_EXPAND_LISTS:3.16版本新增。命令参数中的列表将展开,包括使用生成器表达式创建的列表。 ``` add_test( NAME mytest COMMAND $ # 指代mytest这个目标的完整路径 ) ``` $\是生成器表达式,它是在生成构建系统生成时的表达式。生成器表达式在测试时非常方便,因为不必显式地将可执行程序的位置和名称,可以硬编码到测试中。 ## 3.ctest命令 - CTest遵循的标准约定是:返回零意味着成功,非零返回意味着失败。可以返回零或非零的脚本都可以做测试用例。(Windows端使用VS编译时要保证安装“用于Windows的C++ CMake工具”)