【问题标题】:Building Boost on Windows from https://github.com/boostorg/boost.git从 https://github.com/boostorg/boost.git 在 Windows 上构建 Boost
【发布时间】:2020-07-21 06:12:47
【问题描述】:

我一直在尝试从 Windows 上的 git repo https://github.com/boostorg/boost.git 构建 boost 1.73 版。并且能够构建它,但是当我尝试在代码中使用它时,它正在寻找 boost 1.74 而不是 1.73。

这是我构建它的步骤:

git clone --recursive https://github.com/boostorg/boost.git
cd boost
rm -rvf more
git checkout tags/boost-1.73.0
git submodule update --init --recursive

克隆完成后。我执行以下操作:

bootstrap.bat
.\b2 --toolset=msvc-14.2 variant=release,debug threading=multi link=shared,static runtime-link=shared,static address-model=64,32 architecture=x86 --layout=versioned --stagedir=out\\release -j %NUMBER_OF_PROCESSORS% -q --hash

Boost 按预期构建,但是当我在代码中使用它进行静态链接时。链接器查找 boost 版本 1.74,它是目前 master 上的最新版本。但是,如果我从 here 下载源代码然后构建它,一切都会按预期工作。

谁能帮我指出我可能做错了什么?

TIA

【问题讨论】:

标签: c++ git boost


【解决方案1】:

你写道:

Boost 按预期构建,但是当我在代码中使用它时 静态链接。链接器查找 boost 版本 1.74,

您可以使用git grep 1\\.74 验证字符串1.74 根本没有出现在Boost 源代码中(POSIX shell 需要两个反斜杠,Windows 命令行可能只需要一个?)。我这样做了,源代码中确实没有 1.74,除了在一个文件中 doc/test/test.svg 作为与版本控制无关的数字的一部分。*

除了您正在构建的 Boost 之外,您的系统上似乎存在或曾经有另一个版本的 Boost,并且 MSVC 正在尝试使用它。在您尝试使用 Boost 的项目中,您需要仔细查看项目属性。看看 MSVC 搜索库和头文件的路径,肯定有一些东西没有使用你构建的 Boost。

不清楚为什么当您从 dl.bintray.com 下载源代码时没有看到此问题 - 该源代码与您从 github 获得的源代码不同,但差异似乎微不足道。


*可悲的是,git grep 似乎不像我想象的那么可靠。使用 grep --recursive 1\\.74 * 可以找到 1.74 的许多其他实例。但是,我相信它们都是与版本无关的数字常量。

【讨论】:

    猜你喜欢
    • 2011-12-18
    • 1970-01-01
    • 1970-01-01
    • 2010-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多