构建boost错误:'<pstage \ lib> libboost_system-vc120-mt-1_58.dll'</pstage \ lib>的名称冲突

时间:2014-12-07 12:18:49

标签: c++ boost boost-build b2

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

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.

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

感谢

5 个答案:

答案 0 :(得分:7)

如果我将--without-context --without-coroutine添加到b2选项

,则构建

答案 1 :(得分:2)

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

如果是这样,我认为git中提供的最新版本已经破解。今天我也尝试编译它,如果你能解决你提到的错误,你会因为目标目录中的文件不完整而导致其他错误(boost ptr_container library isn't installed after compilation from source

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

答案 2 :(得分:2)

来自Boost 1.58 beta release notes

  

重要提示

     

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

     

./b2 address-model=64 architecture=x86

     

来测试这个。

将这些标志添加到b2命令可以解决问题,而不必排除contextcoroutine库(如果您真的使用这些库,就像我一样! )。

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

答案 3 :(得分:0)

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

都有效

答案 4 :(得分:0)

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

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

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