1

到目前为止,这是我启动 Cmake 构建的命令行:

cmake .. --build .. -DCMAKE_BUILD_TYPE:STRING=release

这很好并且有效,它会产生一个

Project.sln

tests/ProjectTests.sln

解决方案文件。

我可以使用 Visual Studio 打开解决方案文件并构建它们并从 Visual Studio 运行测试,但是我正在从 Continuos 集成服务器运行脚本,因此我还需要启动构建并从命令行运行测试:我该如何去做?


我需要

  1. 构建库 (Project.sln)
  2. 构建测试可执行文件 (tests/ProjectTests.sln)
  3. 运行测试(CTest从位于 wich 的同一文件夹中调用Tests.exe

直到现在我尝试使用命令构建

msbuild Infectorpp2.sln

但这是失败的(错误日志只是发布时间太长),如果这可以帮助这里是github上的脚本。主要问题是我无法最终生成Tests.exe文件,一旦完成调用 CTest 就很简单了。提前致谢。

4

2 回答 2

5

文档中所述,使用 CMake构建目标(即使用生成.sln文件后)的一般语法是:cmake -G

cmake --build . [--config <config>] [--target <target>] [-- -i]

它将为您调用适当的编译器/工具链命令。

有关命令接受的参数的完整列表,请参见cmake(1) 。cmake

于 2015-10-11T22:37:29.550 回答
0

为随机浏览器补全信息,问题最终出在函数签名错误。

CMake 测试驱动程序需要这样的签名:

int filename(int, char*[])

GCC/Clang 接受这个签名

int filename(int, char**)

而 Visual Studio 需要

int filename(int char**const) //still works with GCC/Clang luckily
于 2015-10-12T08:10:01.613 回答