7

我正在尝试boost在 64 位系统上使用 Visual Studio 2013 在 Windows 8.1 上构建。

b2 toolset="msvc" address-model=64 -s ZLIB_SOURCE=C:\H\M\zlib --build-type=complete stage

这是完整的输出:

Performing configuration checks

    - symlinks supported       : no
    - junctions supported      : yes
    - hardlinks supported      : yes
    - arm                      : no
    - mips1                    : no
    - power                    : no
    - sparc                    : no
    - x86                      : yes
    - has_icu builds           : no
warning: Graph library does not contain MPI-based parallel components.
note: to enable them, add "using mpi ;" to your user-config.jam
    - iconv (libc)             : no
    - iconv (separate)         : no
    - icu                      : no
    - icu (lib64)              : no
    - message-compiler         : yes
    - compiler-supports-ssse3  : yes
    - compiler-supports-avx2   : yes
    - gcc visibility           : no
    - long double support      : yes
warning: skipping optional Message Passing Interface (MPI) library.
note: to enable MPI support, add "using mpi ;" to user-config.jam.
note: to suppress this message, pass "--without-mpi" to bjam.
note: otherwise, you can safely ignore this message.
error: Name clash for '<pstage\lib>boost_system-vc120-mt-1_58.dll'
error:
error: Tried to build the target twice, with property sets having
error: these incompabile properties:
error:
error:     -  <warnings>all
error:     -  <architecture>x86 <warnings>on
error:
error: Please make sure to have consistent requirements for these
error: properties everywhere in your project, especially for install
error: targets.

这是什么意思以及如何解决它?

谢谢

4

5 回答 5

9

如果我将 --without-context --without-coroutine 添加到 b2 选项,则构建

于 2015-01-11T09:29:45.607 回答
5

来自Boost 1.58 beta 发行说明

重要的提示

构建脚本存在错误;您必须为 b2 指定地址模式和架构。我用了:

./b2 address-model=64 architecture=x86

来测试一下。

将这些标志添加到b2命令中可以解决问题,而无需排除contextcoroutine库(例如,如果您像我一样实际使用这些库,则很方便!)。

自然,如果您正在构建 32 位库,则需要添加address-model=32

于 2015-04-04T09:36:20.673 回答
2

您是否从 git 存储库中获得了提升?

如果是这样,我认为 git 中可用的最新版本已损坏。今天我也尝试编译它,如果你能解决你提到的错误,你会因为目标目录中的文件不完整而得到另一个错误(从源代码编译后没有安装 boost ptr_container 库

解决方案是从他们的网站 ( http://sourceforge.net/projects/boost/files/boost/1.57.0/ )下载最新的 boost 版本。之后,编译和安装工作正常

于 2014-12-07T20:56:13.163 回答
2

就我而言,我使用的是variant=release,debug命令行参数,这导致了名称冲突。

我添加了额外的论点--layout=tagged,问题消失了。

另请参阅https://stackoverflow.com/a/55214183/2338477

于 2019-04-30T11:27:08.233 回答
1

也许你有两个版本的 g++ 可用$PATH。尝试运行where g++。如果您看到两个 g++,则从$PATH. 然后重新开始所有的构建过程。这对我有用

于 2018-08-07T12:11:32.773 回答