1

我正在尝试使用 incredibuild 在命令行中加速 cmake 项目的编译,使用 Visual Studio 2013 进行编译。我可以使用以下命令编译和安装库:

BuildConsole zlib.sln /prj=INSTALL /cfg="Debug|x64"

但它跳过了安装部分:

Microsoft Visual Studio 2013 Version 12.0.40629.0.
Copyright (C) Microsoft Corp. All rights reserved.
1>------ Skipped Build: Project: INSTALL, Configuration: Debug x64 ------
1>Project not selected to build for this solution configuration

但是,如果我从 Visual Studio 执行它,它工作正常:

Initializing...

Microsoft Visual Studio 2013 Version 12.0.40629.0.
Copyright (C) Microsoft Corp. All rights reserved.
1>------ Build started: Project: INSTALL, Configuration: Debug x64 ------
1>Build started 1/6/2016 4:52:09 PM.
1>PrepareForBuild:
1>  Creating directory "x64\Debug\INSTALL\INSTALL.tlog\".
1>InitializeBuildStatus:
1>  Creating "x64\Debug\INSTALL\INSTALL.tlog\unsuccessfulbuild" because     "AlwaysCreate" was specified.
1>PostBuildEvent:
1>  -- Install configuration: "Debug"
1>-- Installing: C:/work/dev/workspace/thirdparty/tmp/install/zlib/lib/zlibd.lib
1>-- Installing: C:/work/dev/workspace/thirdparty/tmp/install/zlib/bin/zlibd.dll
1>-- Installing: C:/work/dev/workspace/thirdparty/tmp/install/zlib/lib/zlibstaticd.lib
1>-- Installing:     C:/work/dev/workspace/thirdparty/tmp/install/zlib/include/zconf.h
1>-- Installing: C:/work/dev/workspace/thirdparty/tmp/install/zlib/include/zlib.h
1>-- Installing: C:/work/dev/workspace/thirdparty/tmp/install/zlib/share/man/man3/zlib.3
1>-- Installing: C:/work/dev/workspace/thirdparty/tmp/install/zlib/share/pkgconfig/zlib.pc
1>  ...
1>  
1>FinalizeBuildStatus:
1>  Deleting file "x64\Debug\INSTALL\INSTALL.tlog\unsuccessfulbuild".
1>  Touching "x64\Debug\INSTALL\INSTALL.tlog\INSTALL.lastbuildstate".
1>
1>Build succeeded.
1>
1>Time Elapsed 00:00:00.40
========== Build: 1 succeeded, 0 failed, 6 up-to-date, 0 skipped ==========

有什么线索吗?

谢谢 !伊曼纽尔

4

2 回答 2

0

此回复来自 IncrediBuild 团队:我们已在我们的实验室中下载并尝试了与 Microsoft Visual Studio 2013 相同的 zlib-1.2.8 版本。我们发现在 zlib 中默认情况下,当使用 cmake 生成 .sln 和 .vcxproj 文件时,生成的 INSTALL 项目不包含在构建配置“Debug|x64”中。在为“Debug|x64”构建生成的 zlib.sln 时,它不会构建 INSTALL 项目,不是通过 VS IDE 也不是通过 BuildConsole 命令 - 这很好,因为该项目未包含在构建配置中。一旦 INSTALL 项目在“Debug|x64”配置中被标记为选择构建,就不会出现跳过它的问题,并且项目会正确构建。选择为“Debug|x64”显式构建此项目

免责声明:作者是 IncrediBuild 员工

于 2016-01-20T12:41:03.303 回答
0

对我有用的解决方案是首先在解决方案上运行 MSBuild,然后在 Install.vcxproj 上单独运行。这与 IncrediBuild 完全无关,我只使用普通的 MSBuild。我想可以在解决方案上使用 IncrediBuild,然后在安装项目上使用 MSBuild。

实际上,在我的情况下(没有 IncrediBuild),只需在 Install.vcxproj 上运行 MSBuild 就足够了,它会检测依赖关系并在安装项目之前构建其他项目。

于 2016-12-07T15:52:48.640 回答