我试图在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.
它是什么意思以及如何解决它?
感谢
答案 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
命令可以解决问题,而不必排除context
和coroutine
库(如果您真的使用这些库,就像我一样! )。
当然,如果您要构建32位库,则需要添加address-model=32
。
答案 3 :(得分:0)
也许$PATH
中有两个可用的g ++版本。尝试运行where g++
。如果看到两个g ++,请从$PATH
中删除一个。然后重新开始所有构建过程。这对我和
答案 4 :(得分:0)
就我而言,我使用的是variant=release,debug
命令行参数,这会导致名称冲突。
我添加了额外的参数--layout=tagged
,问题消失了。