Ошибка повышения: конфликт имен для ‘& lt; pstage \ lib & gt; boost_system-vc120-mt-1_58.dll’

Я пытаюсь построить boost на Windows 8.1 с Visual Studio 2013 в 64-битной системе.

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

Решение

строит, если я добавлю —without-context —without-coroutine к b2 опциям

7

Другие решения

Вы получили поддержку от репозитория git?

Если так, то я думаю, что последняя версия, доступная в git, не работает. Сегодня я тоже пытался скомпилировать его, и если вы решите упомянутые ошибки, вы получите еще одну ошибку из-за неполных файлов в целевых каталогах (библиотека boost ptr_container не устанавливается после компиляции из исходного кода)

Решение было скачать последнюю версию буста с их сайта (http://sourceforge.net/projects/boost/files/boost/1.57.0/). После этого компиляция и установка работает корректно

2

От Примечания к бета-версии Boost 1.58:

Важная заметка

В скриптах сборки есть ошибка; Вы должны указать
адресный режим и архитектура для b2. Я использовал:

./b2 address-model=64 architecture=x86

чтобы проверить это.

Добавление этих флагов к b2 Команда решает проблему, не исключая context а также coroutine библиотеки (удобно, если, скажем, вы действительно используете эти библиотеки, как я!).

Естественно, если вы собираете 32-битные библиотеки, вы хотите добавить address-model=32 вместо.

2

Может быть, у вас есть две версии G ++ доступны в $PATH, Попробуйте запустить where g++, Если вы видите два g ++, то удалите один из $PATH, А затем начните сначала весь процесс сборки. Это сработало для меня и

0