【问题标题】:Boost build fails to generate visual studio manifest fileBoost 构建无法生成 Visual Studio 清单文件
【发布时间】:2020-09-01 08:20:53
【问题描述】:

我正在尝试从源代码构建 Boost,但遇到了一个奇怪的问题。一些 Windows 机器可以很好地编译它,而其他机器即使都运行相同版本的 Visual Studio 也会失败。这在所有使用 Boost 1.62 的机器上都有效,但在 Boost 1.72 上失败了。

这是 Boost 构建命令:

b2 -j${num_processors} -d 0 --layout=versioned architecture=x86 address-model=64 threading=multi
link=shared runtime-link=shared toolset=msvc-14.0 --with-system --with-thread --with-date_time
--with-chrono --with-filesystem --with-atomic variant=debug --prefix=${boost_dir} install

问题似乎是 Boost Thread 未正确配置,因此未生成项目的 .MANIFEST 文件。这是错误输出(见最后一行):

>  bin.v2\libs\headers\build\install\boost_headers-config.cmake
>          1 file(s) copied.
>  msvc.link.dll bin.v2\libs\thread\build\msvc-14.0\debug\address-model-64\threadapi-win32\threading-multi\boost_thread-vc140-mt-gd-x64-1_72.dll
>
>          call "bin.v2\standalone\msvc\msvc-14.0\address-model-64\architecture-x86\msvc-setup.bat" amd64 >nul
>   link /NOLOGO /INCREMENTAL:NO /DLL /DEBUG /MACHINE:X64 /MANIFEST /subsystem:console /out:"bin.v2\libs\thread\build\msvc-14.0\debug\address-model-64\threadapi-win32\threading-multi\boost_thread-vc140-mt-gd-x64-1_72.dll"
       /IMPLIB:"bin.v2\libs\thread\build\msvc-14.0\debug\address-model-64\threadapi-win32\threading-multi\boost_thread-vc140-mt-gd-x64-1_72.lib"
       @"bin.v2\libs\thread\build\msvc-14.0\debug\address-model-64\threadapi-win32\threading-multi\boost_thread-vc140-mt-gd-x64-1_72.dll.rsp"
>          if %ERRORLEVEL% NEQ 0 EXIT %ERRORLEVEL%
>
>     Creating library bin.v2\libs\thread\build\msvc-14.0\debug\address-model-64\threadapi-win32\threading-multi\boost_thread-vc140-mt-gd-x64-1_72.lib
         and object bin.v2\libs\thread\build\msvc-14.0\debug\address-model-64\threadapi-win32\threading-multi\boost_thread-vc140-mt-gd-x64-1_72.exp
>LINK : fatal error LNK1104: cannot open file 'bin.v2\libs\thread\build\msvc-14.0\debug\address-model-64\threadapi-win32\threading-multi\boost_thread-vc140-mt-gd-x64-1_72.dll.manifest'

有什么想法会引发这种情况,或者对我可以进一步调查的内容有什么建议吗?

编辑:我们正在使用 Visual Studio 2015 在 Windows 10 上构建它。

【问题讨论】:

  • 已经建好了boost binaries for Visual Studio。也许通过使用预构建的二进制文件,问题可能会得到解决。
  • 预构建的二进制文件在我的环境中不是一个选项。
  • 您应该提及您正在构建的环境。或者至少解释一下为什么预建的二进制文件不是一个选项。
  • 各个行业都有法律要求,所有软件都在隔离网络上运行,并且所有传入的软件都必须从源代码构建。因此,在这种情况下,预构建的二进制文件不是一个选项。

标签: c++ visual-studio boost


【解决方案1】:

为了后代,团队升级到 Visual Studio 2019。这至少解决了我们大多数人的问题。有些人仍然有问题。

【讨论】:

    猜你喜欢
    • 2013-07-02
    • 1970-01-01
    • 2016-07-08
    • 2020-09-12
    • 1970-01-01
    • 2021-10-24
    • 2020-04-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多