Я пытаюсь построить 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.
Что это значит и как решить?
Спасибо
строит, если я добавлю —without-context —without-coroutine к b2 опциям
Вы получили поддержку от репозитория git?
Если так, то я думаю, что последняя версия, доступная в git, не работает. Сегодня я тоже пытался скомпилировать его, и если вы решите упомянутые ошибки, вы получите еще одну ошибку из-за неполных файлов в целевых каталогах (библиотека boost ptr_container не устанавливается после компиляции из исходного кода)
Решение было скачать последнюю версию буста с их сайта (http://sourceforge.net/projects/boost/files/boost/1.57.0/). После этого компиляция и установка работает корректно
От Примечания к бета-версии Boost 1.58:
Важная заметка
В скриптах сборки есть ошибка; Вы должны указать
адресный режим и архитектура для b2. Я использовал:
./b2 address-model=64 architecture=x86
чтобы проверить это.
Добавление этих флагов к b2
Команда решает проблему, не исключая context
а также coroutine
библиотеки (удобно, если, скажем, вы действительно используете эти библиотеки, как я!).
Естественно, если вы собираете 32-битные библиотеки, вы хотите добавить address-model=32
вместо.
Может быть, у вас есть две версии G ++ доступны в $PATH
, Попробуйте запустить where g++
, Если вы видите два g ++, то удалите один из $PATH
, А затем начните сначала весь процесс сборки. Это сработало для меня и