Apa penjelasan langkah demi langkah yang baik tentang cara menggunakan perpustakaan Boost dalam proyek kosong di Visual Studio?
c++
visual-studio-2010
boost
OlimilOops
sumber
sumber
Jawaban:
Walaupun jawaban Nate sudah cukup bagus, saya akan mengembangkannya lebih khusus untuk Visual Studio 2010 seperti yang diminta, dan memasukkan informasi tentang kompilasi dalam berbagai komponen opsional yang memerlukan perpustakaan eksternal.
Jika Anda hanya menggunakan pustaka header, maka yang perlu Anda lakukan adalah menghapus pengunduhan unduhan dan mengatur variabel lingkungan. Instruksi di bawah ini mengatur variabel lingkungan untuk Visual Studio saja, dan tidak di seluruh sistem secara keseluruhan. Catatan Anda hanya perlu melakukannya sekali.
C:\boost_1_47_0
.).Microsoft.Cpp.<Platform>.user
, dan pilihProperties
untuk membuka Halaman Properti untuk diedit.VC++ Directories
di sebelah kiri.Include Directories
bagian untuk menyertakan path ke file sumber boost Anda.Jika Anda ingin menggunakan bagian dorongan yang membutuhkan bangunan, tetapi tidak ada fitur yang memerlukan dependensi eksternal, maka membangunnya cukup sederhana.
C:\boost_1_47_0
.).bootstrap.bat
untuk membangun b2.exe (sebelumnya bernama bjam).Jalankan b2:
b2 --toolset=msvc-10.0 --build-type=complete stage
;b2 --toolset=msvc-10.0 --build-type=complete architecture=x86 address-model=64 stage
Jalan-jalan / nonton film atau 2 / ....
Library Directories
bagian untuk menyertakan jalur ke output perpustakaan Anda. (Default untuk contoh dan instruksi di atas adalahC:\boost_1_47_0\stage\lib
. Ganti nama dan pindahkan direktori terlebih dahulu jika Anda ingin memiliki x86 & x64 berdampingan (seperti ke<BOOST_PATH>\lib\x86
&<BOOST_PATH>\lib\x64
).Jika Anda ingin komponen opsional, maka Anda memiliki lebih banyak pekerjaan yang harus dilakukan. Ini adalah:
Filter Boost.IOStreams Bzip2:
C:\bzip2-1.0.6
.).-sBZIP2_SOURCE="C:\bzip2-1.0.6"
saat menjalankan b2 pada langkah 5.Boost.IOStreams filter Zlib
C:\zlib-1.2.5
.).-sZLIB_SOURCE="C:\zlib-1.2.5"
saat menjalankan b2 pada langkah 5.Boost.MPI
project-config.jam
dalam direktori<BOOST_PATH>
yang dihasilkan dari menjalankan bootstrap. Tambahkan baris yang bertuliskanusing mpi ;
(perhatikan spasi sebelum tanda ';').Boost.Python
Untuk sepenuhnya membangun versi 32-bit perpustakaan membutuhkan Python 32-bit, dan juga untuk versi 64-bit. Jika Anda memiliki beberapa versi yang terinstal untuk alasan seperti itu, Anda harus memberi tahu b2 di mana menemukan versi spesifik dan kapan harus menggunakannya. Salah satu cara untuk melakukannya adalah dengan mengedit file
project-config.jam
di direktori<BOOST_PATH>
yang dihasilkan dari menjalankan bootstrap. Tambahkan dua baris berikut yang menyesuaikan yang sesuai untuk jalur & versi pemasangan Python Anda (perhatikan spasi sebelum ';').using python : 2.6 : C:\\Python\\Python26\\python ;
using python : 2.6 : C:\\Python\\Python26-x64\\python : : : <address-model>64 ;
Perhatikan bahwa spesifikasi Python eksplisit seperti saat ini menyebabkan pembangunan MPI gagal. Jadi, Anda perlu melakukan beberapa bangunan terpisah dengan dan tanpa spesifikasi untuk membangun semuanya jika Anda juga membangun MPI.
Ikuti set instruksi kedua di atas untuk membangun boost.
Dukungan Boost.Regex ICU
C:\icu4c-4_8
.).<ICU_PATH>\source\allinone
.-sICU_PATH="C:\icu4c-4_8"
saat menjalankan b2 pada langkah 5.sumber
Sementara petunjuk di situs web Boost sangat membantu, berikut adalah versi ringkas yang juga membangun pustaka x64.
Bangun perpustakaan 32-bit
Ini menginstal Boost header file di bawah
C:\Boost\include\boost-(version)
, dan perpustakaan 32-bit di bawahC:\Boost\lib\i386
. Perhatikan bahwa lokasi default untuk perpustakaan adalahC:\Boost\lib
tetapi Anda ingin meletakkannya di bawahi386
direktori jika Anda berencana untuk membangun beberapa arsitektur.bootstrap
Lari:
b2 toolset=msvc-12.0 --build-type=complete --libdir=C:\Boost\lib\i386 install
toolset=msvc-11.0
toolset=msvc-10.0
toolset=msvc-14.1
Tambahkan
C:\Boost\include\boost-(version)
ke jalur sertakan Anda.C:\Boost\lib\i386
ke jalur lib Anda.Bangun pustaka 64-bit
Ini menginstal Boost header file di bawah
C:\Boost\include\boost-(version)
, dan pustaka 64-bit di bawahC:\Boost\lib\x64
. Perhatikan bahwa lokasi default untuk perpustakaan adalahC:\Boost\lib
tetapi Anda ingin meletakkannya di bawahx64
direktori jika Anda berencana untuk membangun beberapa arsitektur.bootstrap
b2 toolset=msvc-12.0 --build-type=complete --libdir=C:\Boost\lib\x64 architecture=x86 address-model=64 install
toolset=msvc-11.0
toolset=msvc-10.0
C:\Boost\include\boost-(version)
ke jalur sertakan Anda.C:\Boost\lib\x64
ke jalur lib Anda.sumber
Anda juga dapat mencoba -j% NUMBER_OF_PROCESSORS% sebagai argumen yang akan menggunakan semua inti Anda. Membuat segalanya menjadi sangat cepat pada quad core saya.
sumber
Saya dapat merekomendasikan trik berikut: Buat
boost.props
file khususProsedur ini memiliki nilai yang mendorong hanya dimasukkan dalam proyek di mana Anda ingin secara eksplisit memasukkannya. Saat Anda memiliki proyek baru yang menggunakan peningkatan, lakukan:
EDIT (berikut edit dari @ jim-fred):
File yang dihasilkan
boost.props
terlihat seperti ini ...Ini berisi makro pengguna untuk lokasi direktori boost (dalam hal ini, D: \ boost_1_53_0) dan dua parameter lainnya: SertakanPath dan LibraryPath. Pernyataan
#include <boost/thread.hpp>
akan menemukan thread.hpp di direktori yang sesuai (dalam hal ini, D: \ boost_1_53_0 \ boost \ thread.hpp). Direktori 'stage \ lib \' dapat berubah tergantung pada direktori yang diinstal.File boost.props ini dapat ditemukan di
D:\boost_1_53_0\
direktori.sumber
Bagian Boost apa yang Anda butuhkan? Banyak hal yang merupakan bagian dari TR1 yang dikirimkan bersama Visual Studio, jadi Anda bisa mengatakan, misalnya:
Menurut James, ini juga harus bekerja (dalam C ++ 0x):
sumber
std
namespace, karena mereka berada dalam standar C ++ 0x. (Saya pikir mereka mungkin distd::tr1
namespace juga, untuk kompatibilitas ke belakang).Utas ini sudah ada beberapa lama, dan saya pikir saya akan menambahkan sesuatu tentang BAGAIMANA membangun Boost secepat mungkin pada perangkat keras spesifik Anda.
Jika Anda memiliki 4 atau 6-core gunakan -j5 atau -j7 masing-masing. Tentunya bukan standar build -j2 kecuali Anda memang memiliki dual core.
Saya menjalankan Sandy Bridge Extreme dengan stock clock 3930K (6-core) di stasiun utama saya, tetapi memiliki 2600k (4-core) pada kotak cadangan yang lebih lama, dan trennya adalah saya mendapatkan waktu kompilasi Boost terbaik dengan N + 1 proses membangun di mana N adalah jumlah inti fisik. N + 2 mencapai titik pengembalian menurun dan waktu naik.
Catatan: Hyperthreading diaktifkan, 32GB RAM DDR3, Samsung 840 EVO SSD.
-j7 pada 6-core (2 menit dan 51 detik) (Win7 Ultimate x64) (Visual Studio 2013)
-j6 pada 6-core (3 menit dan 2 detik) (Win7 Ultimate x64) (Visual Studio 2013)
-j8 pada 6-core (3 menit dan 17 detik) (Win7 Ultimate x64) (Visual Studio 2013)
Konfigurasi
Saya perhatikan pembangunan 64-bit membutuhkan waktu lebih lama, saya perlu melakukan perbandingan yang sama untuk itu dan memperbarui.
sumber
Juga sedikit catatan: Jika Anda ingin mengurangi waktu kompilasi, Anda dapat menambahkan bendera
untuk menjalankan dua build paralel pada saat yang sama. Ini mungkin mengurangi untuk menonton satu film;)
sumber
-j2
akan meningkatkan nilai jawaban Anda.Unduh peningkatan dari: http://www.boost.org/users/download/ misalnya oleh svn
Setelah itu: cmd -> buka direktori boost ("D: \ boostTrunk" - di mana Anda checkout atau mengunduh dan mengekstrak paket): command: bootstrap
kami membuat bjam.exe di ("D: \ boostTrunk") Setelah itu: perintah: bjam toolset = msvc-10.0 varian = debug, lepaskan threading = multi tautan = statis (Ini akan memakan waktu ~ 20 menit.)
Setelah itu: Buka Visual studio 2010 -> buat proyek kosong -> buka properti proyek -> atur:
Rekatkan kode ini dan periksa apakah berfungsi?
Sumber daya: https://www.youtube.com/watch?v=5AmwIwedTCM
sumber
Inilah cara saya dapat menggunakan Boost:
Anda akan dapat membangun proyek Anda tanpa kesalahan!
sumber
Pemasang Windows yang berada di sini berfungsi dengan baik untuk saya. Saya mengambil langkah-langkah berikut:
Semoga berhasil!
sumber
Tambahan kecil untuk jawaban utama KTC yang sangat informatif:
Jika Anda menggunakan Visual Studio c ++ 2010 Express gratis, dan berhasil membuatnya untuk mengkompilasi binari 64-bit, dan sekarang ingin menggunakannya untuk menggunakan versi 64-bit dari perpustakaan Boost, Anda mungkin berakhir dengan 32- bits libraries (jarak tempuh Anda mungkin berbeda tentu saja, tetapi pada komputer saya ini adalah kasus yang menyedihkan).
Saya bisa memperbaikinya dengan menggunakan hal berikut: di antara langkah-langkah yang dijelaskan di atas sebagai
Saya memasukkan panggilan ke 'setenv' untuk mengatur lingkungan. Untuk versi rilis, langkah-langkah di atas menjadi:
Saya menemukan info ini di sini: http://boost.2283326.n4.nabble.com/64-bit-with-VS-Express-again-td3044258.html
sumber
Contoh minimalis untuk membantu Anda memulai di Visual Studio:
1. Unduh dan hapus zip Boost dari sini.
2. Buat proyek kosong Visual Studio, menggunakan contoh boost perpustakaan yang tidak memerlukan kompilasi terpisah:
3. Di properti proyek Visual Studio Anda, setel Direktori Sertakan Tambahan:
Untuk contoh yang sangat sederhana:
Cara Memasang Boost Libraries di Visual Studio
Jika Anda tidak ingin menggunakan seluruh pustaka boost, hanya sebagian saja:
Menggunakan subset dari boost library di Windows
Jika Anda ingin secara khusus sekarang tentang perpustakaan yang membutuhkan kompilasi:
Cara menggunakan pustaka yang dikompilasi Boost di Windows
sumber
Selain itu, ada sesuatu yang menurut saya sangat berguna. Gunakan variabel lingkungan untuk jalur peningkatan Anda. (Cara mengatur variabel lingkungan di windows, tautan di bawah untuk 7,8,10) Variabel BOOST_ROOT tampaknya menjadi tempat umum lagi dan disetel ke jalur root tempat Anda unzip boost.
Kemudian di Properties, c ++, general, Tambahan Sertakan Direktori gunakan
$(BOOST_ROOT)
. Kemudian jika / ketika Anda pindah ke versi yang lebih baru dari perpustakaan boost Anda dapat memperbarui variabel lingkungan Anda untuk menunjuk ke versi yang lebih baru ini. Karena semakin banyak proyek Anda, gunakan peningkatan Anda tidak perlu memperbarui 'Direktori Sertakan Tambahan' untuk semuanya.Anda juga dapat membuat variabel BOOST_LIB dan mengarahkannya ke tempat libs dipentaskan. Demikian juga untuk Linker-> Direktori Perpustakaan Tambahan, Anda tidak perlu memperbarui proyek. Saya memiliki beberapa hal lama yang dibangun dengan vs10 dan hal-hal baru dengan vs14 sehingga membangun kedua rasa dorongan lib ke folder yang sama. Jadi jika saya memindahkan proyek dari vs10 ke vs14 saya tidak perlu mengubah jalur peningkatan.
CATATAN: Jika Anda mengubah variabel lingkungan, itu tidak akan tiba-tiba berfungsi di proyek VS terbuka. VS memuat variabel saat startup. Jadi, Anda harus menutup VS dan membukanya kembali.
sumber