2015-10-11 82 views
1

到目前为止,这是我的命令行启动CMake的构建:构建VS 2015年解决方案与[CMake的/命令行]

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

这是好作品,它会生成一个

Project.sln 

tests/ProjectTests.sln 

解决方案文件。

我可以打开解决方案文件与Visual Studio和Visual Studio中建立他们和运行测试,但我从连续型集成服务器上运行脚本,因此我还需要启动构建并运行测试命令行:我该怎么做?


我需要

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

直到现在我尝试使用命令

msbuild Infectorpp2.sln 

打造但是失败(error log只是长后),如果这能帮助这里是在GitHub上script。主要的问题是,我不能够最终产生Tests.exe文件,一旦做到这一点呼吁CTEST上实在是小巫见大巫。提前致谢。使用CMake的

回答

4

the documentation提到的,对于建筑物靶的一般语法(即后生成与cmake -G.sln文件)是:

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

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

对于由cmake命令接受参数的完整列表,请参阅cmake(1)

+0

当我添加的东西为 “配置”或“目标”选项,cmake坚持说他没有在“build/ALL_BUILD”文件夹中找到源目录,或者我在“构建/释放”文件夹旁边。我认为只是--build命令被窃听。我已经尝试过那部分文档没有成功 – GameDeveloper

+0

我注意到你已经使用过'..'(即父目录),但我认为它应该是'cmake --build .'(即当前目录,即在哪里_generated_ cmake文件是)。 – 865719

+0

谢谢,现在我可以构建库,但仍然不会生成可执行测试:/ – GameDeveloper

0

要完成随机浏览器的信息,问题的功能终于签名错误。

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

int filename(int, char*[]) 

GCC /锵接受这个签名

int filename(int, char**) 

而Visual Studio的要求

int filename(int char**const) //still works with GCC/Clang luckily 
相关问题