Msbuild 使用[CMake/命令行]构建VS 2015解决方案

Msbuild 使用[CMake/命令行]构建VS 2015解决方案,msbuild,cmake,visual-studio-2015,appveyor,Msbuild,Cmake,Visual Studio 2015,Appveyor,到目前为止,这是我启动Cmake构建的命令行: cmake .. --build .. -DCMAKE_BUILD_TYPE:STRING=release 这是好的,有效的,它产生了 Project.sln 及 解决方案文件 我可以使用visual studio打开解决方案文件并构建它们并从visual studio运行测试,但是我正在从Continuos集成服务器运行脚本,因此我还需要从命令行启动构建并运行测试:我如何才能做到这一点 我需要 构建库(Project.sln) 构建测试可执

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

cmake .. --build .. -DCMAKE_BUILD_TYPE:STRING=release
这是好的,有效的,它产生了

Project.sln

解决方案文件

我可以使用visual studio打开解决方案文件并构建它们并从visual studio运行测试,但是我正在从Continuos集成服务器运行脚本,因此我还需要从命令行启动构建并运行测试:我如何才能做到这一点


我需要

  • 构建库(Project.sln)
  • 构建测试可执行文件(tests/ProjectTests.sln)
  • 运行测试(从
    tests.exe
    所在的同一文件夹调用
    CTest
  • 到目前为止,我一直试图使用命令进行构建

    msbuild Infectorpp2.sln
    
    但这是失败的(只是想发布),如果这有帮助的话,这里是github上的。主要的问题是,我无法最终生成
    Tests.exe
    文件,一旦生成完成,对其调用CTest就很简单了。提前感谢。

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

    cmake --build . [--config <config>] [--target <target>] [-- -i]
    
    cmake——构建。[--config][--target][--i]
    
    它将为您调用适当的编译器/工具链命令

    有关
    cmake
    命令可接受的参数的完整列表,请参阅。

    如中所述,使用cmake构建目标(即使用
    cmake-G
    生成
    .sln
    文件后)的通用语法为:

    cmake --build . [--config <config>] [--target <target>] [-- -i]
    
    cmake——构建。[--config][--target][--i]
    
    它将为您调用适当的编译器/工具链命令


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

    要完成随机浏览器的信息,问题最终是函数签名错误

    CMake测试驱动程序需要以下签名:

    int filename(int, char*[])
    
    GCC/Clang接受此签名

    int filename(int, char**)
    
    而VisualStudio需要

    int filename(int char**const) //still works with GCC/Clang luckily
    

    为了完成随机浏览器的信息,问题最终是函数签名错误

    CMake测试驱动程序需要以下签名:

    int filename(int, char*[])
    
    GCC/Clang接受此签名

    int filename(int, char**)
    
    而VisualStudio需要

    int filename(int char**const) //still works with GCC/Clang luckily
    

    当我添加“config”或“target”选项时,cmake坚持说他在“build/ALL_build”文件夹或“build/Release”文件夹中找不到源目录。我认为只是--build命令被窃听了。我已经尝试了文档的那部分,但没有成功。我注意到您使用了
    (即父目录),但我认为它应该是
    cmake--build.
    (即当前目录,即生成的cmake文件所在的位置)。谢谢,现在我可以构建库了,但是仍然没有生成测试可执行文件:/这与?I do
    --build提出的问题有关吗--target ALL_BUILD
    wich应该等同于
    make ALL
    wich还可以生成测试文件,无论如何,我现在会尝试解决这个问题,如果它能工作,那肯定是一个Cmake错误。感谢当我添加“config”或“target”选项时,cmake坚持说他在“build/ALL_build”文件夹或“build/Release”文件夹中找不到源目录。我认为只是--build命令被窃听了。我已经尝试了文档的那部分,但没有成功。我注意到您使用了
    (即父目录),但我认为它应该是
    cmake--build.
    (即当前目录,即生成的cmake文件所在的位置)。谢谢,现在我可以构建库了,但是仍然没有生成测试可执行文件:/这与?I do
    --build提出的问题有关吗--target ALL_BUILD
    wich应该等同于
    make ALL
    wich还可以生成测试文件,无论如何,我现在会尝试解决这个问题,如果它能工作,那肯定是一个Cmake错误。谢谢