Versi 64-bit Boost untuk jendela 64-bit

119

Apakah ada versi library Boost 64-bit untuk VS2008? Atau apakah saya harus mengkompilasinya sendiri? jika, jadi, apakah ada yang punya pengalaman dengannya?

ra170
sumber

Jawaban:

226

Sebagai jawaban singkatnya:

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

Sebagai jawaban yang lebih panjang, berikut adalah catatan build saya karena memiliki pustaka peningkatan VS .NET 2008 32-bit dan 64-bit dalam hierarki yang sama (yang saya curigai sebagai kasus penggunaan umum):

  1. Bangun biner win32

    bjam --toolset=msvc-9.0 --build-type=complete stage
  2. Buat direktori lib \ win32

  3. Pindahkan konten stage \ lib ke lib \ win32
  4. Hapus direktori bin.v2 dan dekor
  5. Bangun biner x64

    bjam --toolset=msvc-9.0 address-model=64 --build-type=complete stage
  6. Buat direktori lib \ x64

  7. Pindahkan konten stage \ lib ke lib \ x64
  8. Hapus direktori bin.v2 dan dekor
Adrian Conlon
sumber
25
Anda juga dapat menentukan direktori dekor, yang menghilangkan kebutuhan untuk menyalin pustaka yang dihasilkan di sekitar: bjam --toolset = msvc-9.0 address-model = 64 --build-type = complete --stagedir = lib \ x64 stage
hkaiser
8
apa itu panggung ?
Ramadheer Singh
16
Sayangnya untuk membangun 64, address-model = 64 tidak berfungsi. Anda harus memiliki jalur yang mengarah ke Visual Studio \ bin \ amd64 \ cl.exe. Jika tidak, ia membangun versi 32 bit. Untuk melakukan ini, Anda dapat memulai Microsoft SDK Command prompt dan menggunakan "setenv / Release / x64" yang mendefinisikan ulang semua jalur.
Budric
2
@ Budric, apakah kamu yakin? Tampaknya berhasil untuk saya dan ini secara eksplisit menyatakan untuk menyediakan jalur ke kompiler 32 bit bahkan ketika membangun dalam 64 bit.
Maciej Gryka
4
Jika Anda perlu membuat versi 32 dan 64 bit, Anda juga dapat menggunakan parameter stagedir: "bjam --stagedir =. / Lib_64bit address-model = 64 toolset = msvc threading = multi" dan "bjam --stagedir =. / lib toolset = msvc threading = multi "
Odin
63

Saya memiliki binari bawaan di situs saya: http://boost.teeks99.com

Sunting 2013-05-13: Bangunan saya sekarang tersedia (mulai dari 1.53) langsung dari halaman sourceforge .

teeks99
sumber
5
Bagus karena Anda menyediakan ini, karena BoostPRo (yang menyediakan binari untuk pustaka Boost) tidak memberikan versi x64. Terima kasih!
CharlesB
Adakah kemungkinan Anda dapat memposting binari VS2015 (VC ++ 14)? Itu akan sangat dihargai.
Russell Greene
1
Biner msvc-14.0 akan ada dalam rilis 1.59 yang akan keluar dalam beberapa minggu.
teeks99
22

UPDATE (19.09.2017): menambahkan baris skrip untuk VS2017. Perlu diketahui bahwa Boost mendukung kompiler VS2017 dari versi tertentu di atas. Saya menggunakan versi terbaru (1.65.1).

Saya menggunakan skrip ini untuk membangun dorongan untuk platform x64 dan x86, lib dan dll, debug dan rilis untuk VS2017, VS2015 dan 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

Anda dapat membuat .batfile dan menjalankannya untuk membangun biner boost Anda.

mtb
sumber
12

Saat ini, binari 64-bit yang disediakan oleh teeks99 (lihat jawaban lain) tampaknya menjadi satu-satunya binari 64-bit gratis yang ada. Untuk sementara, BoostPro juga menyediakan binari 64-bit, tetapi mulai 1,51 mereka tampak keluar atau bisnis.

Jadi, di sana kita kembali ke dua opsi lagi: binari teeks99, atau membangun milik Anda sendiri.

Sebagian besar informasi yang saya perlukan untuk membuat sendiri ada di sini: https://stackoverflow.com/a/2655683/613288

Satu-satunya hal yang hilang adalah bagaimana membuatnya bekerja dengan versi gratis Visual Studio 2010 Express. Saya menemukan bagian yang hilang di tempat lain, dan setelah beberapa penyesuaian, resep terakhir yang saya gunakan untuk membangun binari boost 1.49.0 saya adalah:

Mulai Visual C ++, dan dari menu Alat mulai Prompt Perintah Visual Studio.

Di jendela konsol, lakukan hal berikut:

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

dan kemudian di direktori boost:

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

Perintah terakhir disesuaikan untuk apa yang kebetulan saya butuhkan (hanya beberapa perpustakaan yang terhubung secara statis).

ecotax
sumber
Saya mengunduh penginstal x64 1_51 mereka, namun, itu berisi arsip yang rusak untuk sistem lib dan tampaknya beberapa lib lain ada x86 (saya mendapat peringatan linker). Setelah beralih ke libs teeks99 semuanya menjadi OK.
Alex
4

Saya membuatkan saya skrip kecil yang mengumpulkan semuanya untuk VS2005 dan 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\
Harald Krause
sumber