64-розрядна версія Boost для 64-бітних вікон


119

Чи існує версія 64-розрядної бібліотеки Boost для VS2008? Або я повинен сам скласти один? якщо так, чи має хтось із цим досвід?

Відповіді:


226

Як коротка відповідь:

bjam --toolset=msvc-9.0 address-model=64 --build-type=complete

В якості більш тривалої відповіді, ось мої замітки щодо побудови VS .NET 2008, 32-бітні та 64-розрядні збільшити бібліотеки в тій же ієрархії (у цьому я підозрюю, що це звичайне використання):

  1. Побудуйте бінарні файли win32

    bjam --toolset=msvc-9.0 --build-type=complete stage
  2. Створіть каталог lib \ win32

  3. Перемістіть вміст етап \ lib до lib \ win32
  4. Видаліть каталоги bin.v2 та stage
  5. Побудуйте бінарні файли x64

    bjam --toolset=msvc-9.0 address-model=64 --build-type=complete stage
  6. Створіть каталог lib \ x64

  7. Перемістіть вміст етап \ lib до lib \ x64
  8. Видаліть каталоги bin.v2 та stage

25
Ви також можете вказати каталог етапів, який усуває необхідність копіювання отриманих бібліотек навколо: bjam --toolset = msvc-9.0 address-model = 64 --build-type = complete --stagedir = lib \ x64 stage
hkaiser

8
що таке стадія ?
Рамадхер Сінгх

16
На жаль, створити 64, адреса-модель = 64 не працює. Потрібно, щоб ваш шлях вказував на Visual Studio \ bin \ amd64 \ cl.exe. Інакше він будує 32-бітну версію. Для цього можна запустити командний рядок Microsoft SDK і використовувати "setenv / Release / x64", який переосмислює всі шляхи.
Будрик

2
@Budric, ти впевнений? Здається, це працювало для мене, і це явно говорить про те, щоб надати шлях до 32-бітного компілятора навіть при побудові в 64-бітному.
Мацей Грика

4
Якщо вам потрібно побудувати як 32, так і 64-бітну версію, можна також скористатися параметром поетапної дії: "bjam --stagedir =. / Lib_64bit address-model = 64 набір інструментів = msvc threading = multi" і "bjam --stagedir =. / lib toolset = msvc threading = multi "
Одін

63

У мене є вбудовані бінарні файли на моєму сайті: http://boost.teeks99.com

Редагувати 2013-05-13: Мої збірки тепер доступні (починаючи з 1.53) безпосередньо зі сторінки sourceforge .


5
Чудово, що ви це надаєте, оскільки BoostPRo (який надає бінарні файли для бібліотек Boost) не надає версії x64. Дякую!
CharlesB

Ви можете розмістити бінарні файли VS2015 (VC ++ 14)? Це було б дуже вдячно.
Рассел Грін

1
Бінарні файли msvc-14.0 будуть випущені через 1,59 тижня через пару тижнів.
teeks99

22

ОНОВЛЕННЯ (19.09.2017): додано рядки сценарію для VS2017. Зауважте, що Boost підтримує компілятор VS2017 з певної версії вище. Я використав останню версію (1.65.1).

Я використовував ці сценарії для побудови прискорень для платформ x64 та x86, lib та dll, налагодження та випуск для VS2017, VS2015 та VS2013:

md stage\VS2017\x64
md stage\VS2015\x64
md stage\VS2013\x64    

b2 --stagedir=./stage/VS2017/x64 address-model=64 --build-type=complete --toolset=msvc-14.1 --threading=multi --runtime-link=shared --variant=debug
b2 --stagedir=./stage/VS2017/x64 address-model=64 --build-type=complete --toolset=msvc-14.1 --threading=multi --runtime-link=shared --variant=release  

b2 --stagedir=./stage/VS2015/x64 address-model=64 --build-type=complete --toolset=msvc-14.0 --threading=multi --runtime-link=shared --variant=debug
b2 --stagedir=./stage/VS2015/x64 address-model=64 --build-type=complete --toolset=msvc-14.0 --threading=multi --runtime-link=shared --variant=release

b2 --stagedir=./stage/VS2013/x64 address-model=64 --build-type=complete --toolset=msvc-12.0 --threading=multi --runtime-link=shared --variant=debug
b2 --stagedir=./stage/VS2013/x64 address-model=64 --build-type=complete --toolset=msvc-12.0 --threading=multi --runtime-link=shared --variant=release


md stage\VS2017\win32
md stage\VS2015\win32
md stage\VS2013\win32

b2 --stagedir=./stage/VS2017/win32 --build-type=complete --toolset=msvc-14.1 --threading=multi --runtime-link=shared --variant=debug
b2 --stagedir=./stage/VS2017/win32 --build-type=complete --toolset=msvc-14.1 --threading=multi --runtime-link=shared --variant=release

b2 --stagedir=./stage/VS2015/win32 --build-type=complete --toolset=msvc-14.0 --threading=multi --runtime-link=shared --variant=debug
b2 --stagedir=./stage/VS2015/win32 --build-type=complete --toolset=msvc-14.0 --threading=multi --runtime-link=shared --variant=release

b2 --stagedir=./stage/VS2013/win32 --build-type=complete --toolset=msvc-12.0 --threading=multi --runtime-link=shared --variant=debug
b2 --stagedir=./stage/VS2013/win32 --build-type=complete --toolset=msvc-12.0 --threading=multi --runtime-link=shared --variant=release

pause

Ви можете створити .batфайл і запустити його для створення ваших прискорених бінарних файлів.


12

На даний момент 64-бітові бінарні файли, надані teeks99 (див. Іншу відповідь), є єдиними вільними 64-бітовими бінарними файлами навколо. Деякий час BoostPro також надав 64-бітні бінарні файли, але станом на 1,51 вони, здається, є поза межами бізнесу.

Отже, ми знову повернемось до двох варіантів: бінарних файлів teeks99 або створення власних.

Більшість інформації, яку мені потрібно було створити, була тут: https://stackoverflow.com/a/2655683/613288

Єдине, чого бракувало, - це змусити це працювати з безкоштовною версією Visual Studio 2010 Express. Я виявив цю частину, яка відсутня десь в іншому місці, і після деякої настройки, остаточним рецептом, який я використав для моєї збірки збільшити 1.49.0 бінарних файлів, було:

Запустіть Visual C ++ і з меню інструментів запустіть командний рядок Visual Studio.

У вікні консолі виконайте наступне:

"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\setenv.cmd"  /Release  /x64

а потім у каталозі підвищення:

bootstrap.bat
b2  -a  -sBZIP2_SOURCE="C:\bzip2-1.0.6"   -sZLIB_SOURCE="C:\zlib-1.2.5"   --toolset=msvc-10.0  architecture=x86  address-model=64  link=static  --with-date_time  --with-filesystem  --with-serialization  --with-test  --with-thread  --with-system  --with-regex  --with-iostreams  stage

Остання команда налаштована на те, що мені трапилось (лише деякі статично пов'язані бібліотеки).


Я завантажив їх інсталятор x64 1_51, однак він містить пошкоджений архів для системної lib, і здається, що деякі інші файли є x86 (я отримую попередження про посилання). Після переходу на гілки teeks99 все стало нормально.
Олексій

4

Я зробив мені невеликий сценарій, який компілює їх для VS2005 та VS2008:

md stage\lib\win32
md stage\lib\x64

REM Visual Studio 2005
bjam --toolset=msvc-8.0 --build-type=complete stage
move /Y stage\lib\* stage\lib\win32\

bjam --toolset=msvc-8.0 address-model=64 --build-type=complete stage
move /Y stage\lib\* stage\lib\x64\

REM Visual Studio 2008
bjam --toolset=msvc-9.0 --build-type=complete stage
move /Y stage\lib\* stage\lib\win32\

bjam --toolset=msvc-9.0 address-model=64 --build-type=complete stage
move /Y stage\lib\* stage\lib\x64\
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.