Cách sử dụng Boost trong Visual Studio 2010


Câu trả lời:


512

Mặc dù câu trả lời của Nate khá tốt, tôi sẽ mở rộng cụ thể hơn cho Visual Studio 2010 theo yêu cầu và bao gồm thông tin về việc biên dịch trong các thành phần tùy chọn khác nhau cần có thư viện bên ngoài.

Nếu bạn đang sử dụng các thư viện chỉ tiêu đề, thì tất cả những gì bạn cần làm là hủy đăng ký tải xuống boost và thiết lập các biến môi trường. Hướng dẫn bên dưới chỉ đặt các biến môi trường cho Visual Studio chứ không phải trên toàn bộ hệ thống. Lưu ý bạn chỉ phải làm một lần.

  1. Hủy lưu trữ phiên bản mới nhất của boost (1.47.0 khi viết) vào một thư mục bạn chọn (ví dụ C:\boost_1_47_0).
  2. Tạo một dự án trống mới trong Visual Studio.
  3. Mở Trình quản lý tài sản và mở rộng một trong các cấu hình cho nền tảng bạn chọn.
  4. Chọn & nhấp chuột phải Microsoft.Cpp.<Platform>.uservà chọn Propertiesđể mở Trang thuộc tính để chỉnh sửa.
  5. Chọn VC++ Directoriesbên trái.
  6. Chỉnh sửa Include Directoriesphần để bao gồm đường dẫn đến tệp nguồn tăng của bạn.
  7. Lặp lại các bước 3 - 6 cho nền tảng khác nhau mà bạn chọn nếu cần.

Nếu bạn muốn sử dụng một phần của boost yêu cầu xây dựng, nhưng không có tính năng nào yêu cầu phụ thuộc bên ngoài, thì việc xây dựng nó khá đơn giản.

  1. Hủy lưu trữ phiên bản mới nhất của boost (1.47.0 khi viết) vào một thư mục bạn chọn (ví dụ C:\boost_1_47_0).
  2. Bắt đầu Visual Studio Command Prompt cho nền tảng bạn chọn và điều hướng đến vị trí boost.
  3. Chạy: bootstrap.batđể xây dựng b2.exe (tên trước đây là bjam).
  4. Chạy b2:

    • Win32 : b2 --toolset=msvc-10.0 --build-type=complete stage ;
    • x64: b2 --toolset=msvc-10.0 --build-type=complete architecture=x86 address-model=64 stage

Đi dạo / xem phim hoặc 2 / ....

  1. Chuyển qua các bước 2 - 6 từ bộ hướng dẫn ở trên để đặt các biến môi trường.
  2. Chỉnh sửa Library Directoriesphần để bao gồm đường dẫn đến đầu ra thư viện tăng của bạn. (Mặc định cho ví dụ và hướng dẫn ở trên sẽ là C:\boost_1_47_0\stage\lib. Đổi tên và di chuyển thư mục trước nếu bạn muốn có x86 & x64 cạnh nhau (chẳng hạn như <BOOST_PATH>\lib\x86& <BOOST_PATH>\lib\x64).
  3. Lặp lại các bước 2 - 6 cho nền tảng khác nhau mà bạn chọn nếu cần.

Nếu bạn muốn các thành phần tùy chọn, thì bạn có nhiều việc phải làm. Đó là:

  • Bộ lọc Bzip2 Boost.IOStreams
  • Bộ lọc Zlib Boost.IOStreams
  • Tăng.MPI
  • Boost.Python
  • Hỗ trợ Boost.Regex ICU

Bộ lọc Boost.IOStreams Bzip2:

  1. Hủy lưu trữ phiên bản mới nhất của thư viện bzip2 (1.0.6 khi ghi) các tệp nguồn vào một thư mục bạn chọn (ví dụ C:\bzip2-1.0.6).
  2. Thực hiện theo bộ hướng dẫn thứ hai ở trên để xây dựng boost, nhưng thêm vào tùy chọn -sBZIP2_SOURCE="C:\bzip2-1.0.6"khi chạy b2 ở bước 5.

Bộ lọc Zlib Boost.IOStreams

  1. Hủy lưu trữ phiên bản mới nhất của thư viện zlib (1.2.5 khi viết) các tệp nguồn vào một thư mục bạn chọn (ví dụ C:\zlib-1.2.5).
  2. Thực hiện theo bộ hướng dẫn thứ hai ở trên để xây dựng boost, nhưng thêm vào tùy chọn -sZLIB_SOURCE="C:\zlib-1.2.5"khi chạy b2 ở bước 5.

Tăng.MPI

  1. Cài đặt bản phân phối MPI như Microsoft Compute Cluster Pack.
  2. Thực hiện theo các bước 1 - 3 từ bộ hướng dẫn thứ hai ở trên để tăng tốc.
  3. Chỉnh sửa tập tin project-config.jamtrong thư mục <BOOST_PATH>kết quả từ việc chạy bootstrap. Thêm vào một dòng đọc using mpi ;(lưu ý khoảng trắng trước dấu ';').
  4. Thực hiện theo các bước còn lại từ bộ hướng dẫn thứ hai ở trên để tăng tốc. Nếu tự động phát hiện cài đặt MPI không thành công, thì bạn sẽ cần tìm và sửa đổi tệp xây dựng phù hợp để tìm MPI ở đúng nơi.

Boost.Python

  1. Cài đặt bản phân phối Python như ActivePate's ActivePython. Hãy chắc chắn rằng bản cài đặt Python nằm trong PATH của bạn.
  2. Để xây dựng hoàn toàn phiên bản 32 bit của thư viện cần có Python 32 bit và tương tự cho phiên bản 64 bit. Nếu bạn có nhiều phiên bản được cài đặt vì lý do đó, bạn sẽ cần cho b2 biết nơi tìm phiên bản cụ thể và khi nào nên sử dụng phiên bản nào. Một cách để làm điều đó là chỉnh sửa tệp project-config.jamtrong thư mục <BOOST_PATH>do chạy bootstrap. Thêm vào hai dòng sau điều chỉnh cho phù hợp với các phiên bản & đường dẫn cài đặt Python của bạn (lưu ý khoảng trắng trước ';').

    using python : 2.6 : C:\\Python\\Python26\\python ;

    using python : 2.6 : C:\\Python\\Python26-x64\\python : : : <address-model>64 ;

    Xin lưu ý rằng đặc tả Python rõ ràng như vậy hiện đang khiến việc xây dựng MPI không thành công. Vì vậy, bạn sẽ cần thực hiện một số tòa nhà riêng biệt có và không có thông số kỹ thuật để xây dựng mọi thứ nếu bạn cũng đang xây dựng MPI.

  3. Thực hiện theo các hướng dẫn thứ hai ở trên để xây dựng boost.

Hỗ trợ Boost.Regex ICU

  1. Hủy lưu trữ phiên bản mới nhất của thư viện ICU4C (4.8 khi viết) tệp vào một thư mục bạn chọn (ví dụ C:\icu4c-4_8).
  2. Mở Giải pháp Visual Studio trong <ICU_PATH>\source\allinone.
  3. Xây dựng tất cả cho cả cấu hình gỡ lỗi và phát hành cho nền tảng bạn chọn. Có thể có vấn đề khi xây dựng các bản phát hành gần đây của ICU4C với Visual Studio 2010 khi đầu ra cho cả bản dựng gỡ lỗi và bản phát hành nằm trong cùng một thư mục (đó là hành vi mặc định). Một cách giải quyết khác có thể là thực hiện Build All (nói về bản dựng gỡ lỗi) và sau đó thực hiện Rebuild all trong cấu hình thứ 2 (ví dụ: bản dựng phát hành).
  4. Nếu xây dựng cho x64, bạn sẽ cần chạy HĐH x64 vì có các bước xây dựng bài đăng liên quan đến việc chạy một số ứng dụng 64 bit mà nó đang xây dựng.
  5. Tùy chọn xóa thư mục nguồn khi bạn hoàn thành.
  6. Thực hiện theo bộ hướng dẫn thứ hai ở trên để xây dựng boost, nhưng thêm vào tùy chọn -sICU_PATH="C:\icu4c-4_8"khi chạy b2 ở bước 5.

@Sorin: tại sao bạn cần thay đổi điều đó?
jalf

6
Cần lưu ý rằng bạn phải chọn Công cụ> Cài đặt> Chế độ Chuyên gia để thậm chí nhìn thấy các trang thuộc tính. Đã cho tôi một chút googling để cuối cùng tìm ra điều này ...
Zack The Human

@KTC: Đó thực sự là "Cài đặt chuyên gia", có sẵn từ menu Công cụ> Cài đặt. Tôi đang chạy VSC ++ 2010 Express Edition và không kích hoạt "Cài đặt chuyên gia", bạn không thể xem các trang thuộc tính.
Zack The Human

11
Nếu bạn muốn cả x64 & win32 cạnh nhau, hãy thêm "--stagedir = lib / win32" và "--stagedir = lib / x64" vào các bản dựng tương ứng.
M. Tibbits

3
Đối với video hướng dẫn cách xây dựng và định cấu hình tăng cường cho Visual Studio 2010, điều này có thể giúp ích: youtube.com/watch?v=5AmwIwedTCM
Barshe

158

Mặc dù các hướng dẫn trên trang web Boost rất hữu ích, đây là phiên bản thu gọn cũng xây dựng thư viện x64.

  • Bạn chỉ cần làm điều này nếu bạn đang sử dụng một trong những thư viện được đề cập trong phần 3 của trang hướng dẫn. (Ví dụ: để sử dụng Boost.Filesystem yêu cầu biên dịch.) Nếu bạn không sử dụng bất kỳ thứ nào trong số đó, chỉ cần giải nén và đi.

Xây dựng thư viện 32 bit

Thao tác này sẽ cài đặt các tệp tiêu đề Boost bên dưới C:\Boost\include\boost-(version)và các thư viện 32 bit bên dưới C:\Boost\lib\i386. Lưu ý rằng vị trí mặc định cho các thư viện là C:\Boost\libnhưng bạn sẽ muốn đặt chúng trong một i386thư mục nếu bạn dự định xây dựng cho nhiều kiến ​​trúc.

  1. Giải nén Boost vào một thư mục mới.
  2. Bắt đầu một dấu nhắc lệnh MSVC 32 bit và thay đổi thư mục nơi Boost được giải nén.
  3. Chạy: bootstrap
  4. Chạy: b2 toolset=msvc-12.0 --build-type=complete --libdir=C:\Boost\lib\i386 install

    • Đối với Visual Studio 2012, hãy sử dụng toolset=msvc-11.0
    • Đối với Visual Studio 2010, hãy sử dụng toolset=msvc-10.0
    • Đối với Visual Studio 2017, hãy sử dụng toolset=msvc-14.1
  5. Thêm vào C:\Boost\include\boost-(version)đường dẫn bao gồm của bạn.

  6. Thêm vào C:\Boost\lib\i386đường dẫn libs của bạn.

Xây dựng thư viện 64 bit

Thao tác này sẽ cài đặt các tệp tiêu đề Boost bên dưới C:\Boost\include\boost-(version)và các thư viện 64 bit bên dưới C:\Boost\lib\x64. Lưu ý rằng vị trí mặc định cho các thư viện là C:\Boost\libnhưng bạn sẽ muốn đặt chúng trong một x64thư mục nếu bạn dự định xây dựng cho nhiều kiến ​​trúc.

  1. Giải nén Boost vào một thư mục mới.
  2. Bắt đầu một dấu nhắc lệnh MSVC 64 bit và thay đổi thư mục nơi Boost được giải nén.
  3. Chạy: bootstrap
  4. Chạy: b2 toolset=msvc-12.0 --build-type=complete --libdir=C:\Boost\lib\x64 architecture=x86 address-model=64 install
    • Đối với Visual Studio 2012, hãy sử dụng toolset=msvc-11.0
    • Đối với Visual Studio 2010, hãy sử dụng toolset=msvc-10.0
  5. Thêm vào C:\Boost\include\boost-(version)đường dẫn bao gồm của bạn.
  6. Thêm vào C:\Boost\lib\x64đường dẫn libs của bạn.

24
Nếu bạn không muốn tự xây dựng chúng, bạn có thể cài đặt các tệp nhị phân dựng sẵn từ sourceforge: sourceforge.net/projects/boost/files/boost-binaries Đối với mỗi phiên bản boost, có trình cài đặt cho mỗi phiên bản studio trực quan (trong cả 32 và 64 bit).
teeks99

Lý do sử dụng architecture = x86 thay vì architecture = x64 khi thực hiện xây dựng 64 bit là gì? EDIT: Chỉ cần tìm ra một cách khó khăn: P Bạn không thể chuyển nó thành 64 ...
kayleeFrye_onDeck

này, @ teeks99 tôi đã truy cập liên kết của bạn được cung cấp nhưng đối với phiên bản v1.4.7 tôi đã tìm thấy quá nhiều tệp, tôi nên sử dụng tệp nào? sẽ không tốt hơn nếu có một tệp duy nhất (thư viện / dll) phù hợp với tất cả các chức năng sử dụng của boost?
gumuruh

2
Hãy thử sourceforge.net/projects/boost/files/boost-binaries/iêu và bạn sẽ có thể tìm thấy trình cài đặt cho 1.47.0 trong đó tùy thuộc vào việc bạn cần 32 bit hay 64 bit. Bên trong đó bạn sẽ tìm thấy rất nhiều DLL, đó chỉ là cách boost hoạt động. Tuy nhiên, miễn là bạn trỏ dự án phòng thu trực quan của mình vào đúng thư mục, sẽ không có vấn đề gì trong đó vì nó sẽ tự động chọn đúng (các) cái mà nó cần.
teeks99 30/03/2016

20

Bạn cũng có thể thử -j% NUMBER_OF_PROCESSORS% làm đối số, nó sẽ sử dụng tất cả các lõi của bạn. Làm cho mọi thứ siêu nhanh trên lõi tứ của tôi.


3
Lần này là một triệu .... đây là những gì tôi cuối cùng đã nỗ lực kết hợp cho VS2015: b2 -j% NUMBER_OF_PROCESSORS% toolset = msvc-14.0 --build-type = hoàn thành --libdir = C: \ Boost \ lib \ x64 architecture = x86 address-model = 64 cài đặt
kayleeFrye_onDeck

đối với quyền hạn, đó là: -j "$ env: NUMBER_OF_PROCESSORS"
Oscarillon

14

Tôi có thể đề xuất mẹo sau: Tạo một boost.propstệp đặc biệt

  1. Mở người quản lý tài sản
  2. Nhấp chuột phải vào nút dự án của bạn và chọn 'Thêm trang thuộc tính dự án mới'.
  3. Chọn một vị trí và đặt tên cho trang thuộc tính của bạn (ví dụ: c: \ mystuff \ boost.props)
  4. Sửa đổi các thư mục Bao gồm và Lib bổ sung vào đường dẫn tìm kiếm.

Quy trình này có giá trị tăng chỉ được bao gồm trong các dự án mà bạn muốn bao gồm nó một cách rõ ràng. Khi bạn có một dự án mới sử dụng boost, hãy làm:

  1. Mở người quản lý tài sản.
  2. Nhấp chuột phải vào nút dự án và chọn 'Thêm trang thuộc tính hiện có'.
  3. Chọn bảng thuộc tính boost.

EDIT (chỉnh sửa sau đây từ @ jim-fred):

Các boost.propstập tin kết quả trông giống như thế này ...

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ImportGroup Label="PropertySheets" />
  <PropertyGroup Label="UserMacros">
    <BOOST_DIR>D:\boost_1_53_0\</BOOST_DIR>
  </PropertyGroup>
  <PropertyGroup>
    <IncludePath>$(BOOST_DIR);$(IncludePath)</IncludePath>
    <LibraryPath>$(BOOST_DIR)stage\lib\;$(LibraryPath)</LibraryPath>
  </PropertyGroup>
</Project>

Nó chứa một macro người dùng cho vị trí của thư mục boost (trong trường hợp này là D: \ boost_1_53_0) và hai tham số khác: Bao gồmPath và LibraryPath. Một câu lệnh #include <boost/thread.hpp>sẽ tìm thấy thread.hpp trong thư mục thích hợp (trong trường hợp này là D: \ boost_1_53_0 \ boost \ thread.hpp). Thư mục 'giai đoạn \ lib \' có thể thay đổi tùy thuộc vào thư mục được cài đặt.

Tập tin boost.props này có thể nằm trong D:\boost_1_53_0\thư mục.


13

Bạn cần những phần nào của Boost? Rất nhiều thứ là một phần của TR1 được phân phối với Visual Studio, vì vậy bạn có thể nói một cách đơn giản, ví dụ:

#include <tr1/memory>

using std::tr1::shared_ptr;

Theo James, điều này cũng sẽ hoạt động (trong C ++ 0x):

#include <memory>

using std::shared_ptr;

5
Trong VS2010, các thư viện TR1 đang trở thành một phần của C ++ 0x đều đã được chuyển vào stdkhông gian tên, vì chúng nằm trong tiêu chuẩn C ++ 0x. (Tôi nghĩ rằng chúng có lẽ cũng nằm trong std::tr1không gian tên, để tương thích ngược).
James McNellis

6

Chủ đề này đã xuất hiện được một thời gian và tôi nghĩ rằng tôi đã thêm một vài điều về CÁCH để xây dựng Boost nhanh nhất có thể trên phần cứng cụ thể của bạn.

Nếu bạn có 4 hoặc 6 lõi, hãy sử dụng -j5 hoặc -j7 tương ứng. Chắc chắn không phải là bản dựng tiêu chuẩn cũng như -j2 trừ khi bạn thực sự có lõi kép.

Tôi đang chạy Sandy Bridge Extreme với kho có xung nhịp 3930K (6 lõi) trên trạm chính của mình, nhưng có 2600k (4 lõi) trên hộp sao lưu cũ hơn và xu hướng là tôi có được thời gian biên dịch Boost tốt nhất với N + 1 quá trình xây dựng trong đó N là số lõi vật lý. N + 2 đạt đến điểm giảm lợi nhuận và thời gian tăng lên.

Ghi chú: Siêu phân luồng được bật, RAM DDR3 32 GB, SSD Samsung 840 EVO.

-j7 trên 6 lõi (2 phút và 51 giây) (Win7 Ultimate x64) (Visual Studio 2013)

PS C:\Boost\boost_1_56_0> measure-command { .\b2 -j7 --build-type=complete msvc stage }

Days              : 0
Hours             : 0
Minutes           : 2
Seconds           : 51
Milliseconds      : 128
Ticks             : 1711281830
TotalDays         : 0.0019806502662037
TotalHours        : 0.0475356063888889
TotalMinutes      : 2.85213638333333
TotalSeconds      : 171.128183
TotalMilliseconds : 171128.183

-j6 trên 6 lõi (3 phút và 2 giây) (Win7 Ultimate x64) (Visual Studio 2013)

PS C:\Boost\boost_1_56_0> measure-command { .\b2 -j6 --build-type=complete msvc stage }

Days              : 0
Hours             : 0
Minutes           : 3
Seconds           : 2
Milliseconds      : 809
Ticks             : 1828093904
TotalDays         : 0.00211584942592593
TotalHours        : 0.0507803862222222
TotalMinutes      : 3.04682317333333
TotalSeconds      : 182.8093904
TotalMilliseconds : 182809.3904

-j8 trên 6 lõi (3 phút và 17 giây) (Win7 Ultimate x64) (Visual Studio 2013)

PS C:\Boost\boost_1_56_0> measure-command { .\b2 -j8 --build-type=complete msvc stage }

Days              : 0
Hours             : 0
Minutes           : 3
Seconds           : 17
Milliseconds      : 652
Ticks             : 1976523915
TotalDays         : 0.00228764342013889
TotalHours        : 0.0549034420833333
TotalMinutes      : 3.294206525
TotalSeconds      : 197.6523915
TotalMilliseconds : 197652.3915

-j7 xây dựng trên 6 lõi

Cấu hình

Building the Boost C++ Libraries.


Performing configuration checks

    - 32-bit                   : yes (cached)
    - arm                      : no  (cached)
    - mips1                    : no  (cached)
    - power                    : no  (cached)
    - sparc                    : no  (cached)
    - x86                      : yes (cached)
    - has_icu builds           : no  (cached)
warning: Graph library does not contain MPI-based parallel components.
note: to enable them, add "using mpi ;" to your user-config.jam
    - zlib                     : no  (cached)
    - iconv (libc)             : no  (cached)
    - iconv (separate)         : no  (cached)
    - icu                      : no  (cached)
    - icu (lib64)              : no  (cached)
    - message-compiler         : yes (cached)
    - compiler-supports-ssse3  : yes (cached)
    - compiler-supports-avx2   : yes (cached)
    - gcc visibility           : no  (cached)
    - long double support      : yes (cached)
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.
    - zlib                     : no  (cached)

Tôi lưu ý việc xây dựng 64 bit mất nhiều thời gian hơn một chút, tôi cần thực hiện so sánh tương tự cho các bản đó và cập nhật.


5

Ngoài ra một lưu ý nhỏ: Nếu bạn muốn giảm thời gian biên dịch, bạn có thể thêm cờ

-j2

để chạy hai bản dựng song song cùng một lúc. Điều này có thể giảm nó khi xem một bộ phim;)


2
Giải thích cách sử dụng -j2sẽ làm tăng giá trị câu trả lời của bạn.
ST3

5

Tải xuống boost từ: http://www.boost.org/users/doad/ vd bởi svn

  • Windows -> rùa (cách đơn giản nhất)

Sau đó: cmd -> chuyển đến thư mục boost ("D: \ boostTrunk" - nơi Bạn thanh toán hoặc tải xuống và giải nén gói): lệnh: bootstrap

chúng tôi đã tạo bjam.exe trong ("D: \ boostTrunk") Sau đó: lệnh: bjam toolset = msvc-10.0 biến = gỡ lỗi, phát hành luồng = multi link = static (Sẽ mất một thời gian ~ 20 phút.)

Sau đó: Mở Visual studio 2010 -> tạo dự án trống -> đi đến thuộc tính dự án -> set:

Dự án bất động sản VS 2010

Dán mã này và kiểm tra nếu nó đang làm việc?

#include <iostream>
#include <boost/shared_ptr.hpp>
#include <boost/regex.hpp>

using namespace std;

struct Hello 
{
    Hello(){ 
        cout << "Hello constructor" << endl;
    }

    ~Hello(){
        cout << "Hello destructor" << endl;
        cin.get();
    }
};


int main(int argc, char**argv)
{
    //Boost regex, compiled library
    boost::regex regex("^(Hello|Bye) Boost$");
    boost::cmatch helloMatches;
    boost::regex_search("Hello Boost", helloMatches, regex);
    cout << "The word between () is: " << helloMatches[1] << endl;

    //Boost shared pointer, header only library
    boost::shared_ptr<Hello> sharedHello(new Hello);

    return 0;
}

Tài nguyên: https://www.youtube.com/watch?v=5AmwIwedTCM


4

Đây là cách tôi có thể sử dụng Boost:

  1. Tải xuống và giải nén phiên bản zip của thư viện Boost.
  2. Chạy tệp bootstrap.bat và sau đó chạy bjam.exe.
  3. Đợi khoảng 30 phút hoặc lâu hơn.
  4. Tạo một dự án mới trong Visual Studio.
  5. Chuyển đến dự án -> thuộc tính -> Trình liên kết -> Chung -> Thư mục thư viện bổ sung và thêm thư mục boost / stage / lib vào nó.
  6. Chuyển đến dự án -> thuộc tính -> C / C ++ -> Chung -> Bổ sung Bao gồm các Thư mục và thêm thư mục tăng cường vào đó.

Bạn sẽ có thể xây dựng dự án của bạn mà không có bất kỳ lỗi nào!


3

Các trình cài đặt Windows nằm ở đây làm việc hoàn hảo cho tôi. Tôi đã thực hiện các bước sau:

  1. Làm theo hướng dẫn cài đặt cho đến khi hoàn thành.
  2. Chạy phòng thu trực quan.
  3. Tạo một dự án C ++ mới
  4. Mở thuộc tính dự án (có thể được tìm thấy bằng cách nhấp chuột phải vào tên dự án trong trình khám phá giải pháp)
  5. Trong "C / C ++> Chung> Thư mục bao gồm bổ sung" thêm đường dẫn trong thư mục gốc. Mặc định cho phiên bản của tôi là C: \ local \ boost_1_63_0. Số sau "boost" là phiên bản boost.
  6. Trong thuộc tính dự án, trong "Trình liên kết> Thư mục thư viện bổ sung" thêm thư mục cho các tệp thư viện. Mặc định cho phiên bản của tôi là C: \ local \ boost_1_63_0 \ lib64-msvc-14.0. Số sau "lib" có liên quan đến mục tiêu xây dựng (32 bit hoặc 64 bit trong Visual Studio) và số sau "msvc" có liên quan đến phiên bản Visual Studio (14.0 có liên quan đến Visual Studio 2015, nhưng tôi sử dụng nó với Visual Studio 2017).

Chúc may mắn!


2

Một bổ sung nhỏ cho câu trả lời chính rất nhiều thông tin của KTC:

Nếu bạn đang sử dụng Visual Studio c ++ 2010 Express miễn phí và quản lý để có được cái đó để biên dịch các nhị phân 64 bit, và bây giờ muốn sử dụng nó để sử dụng phiên bản 64 bit của các libaries Boost, bạn có thể kết thúc với 32- Tất nhiên là các thư viện bit (số dặm của bạn có thể khác nhau, nhưng trên máy của tôi thì đây là trường hợp đáng buồn).

Tôi có thể khắc phục điều này bằng cách sử dụng như sau: giữa các bước được mô tả ở trên như

  1. Bắt đầu một dấu nhắc lệnh MSVC 32 bit và thay đổi thư mục nơi Boost được giải nén.
  2. Chạy: bootstrap

Tôi đã chèn một cuộc gọi đến 'setenv' để đặt môi trường. Đối với bản dựng phát hành, các bước trên trở thành:

  1. Bắt đầu một dấu nhắc lệnh MSVC 32 bit và thay đổi thư mục nơi Boost được giải nén.
  2. Chạy: "C: \ Chương trình tập tin \ Microsoft SDKs \ Windows \ v7.1 \ Bin \ setenv.cmd" / Phát hành / x64
  3. Chạy: bootstrap

Tôi tìm thấy thông tin này ở đây: http://boost.2283326.n4.nabble.com/64-bit-with-VS-Express-again-td3044258.html


Bạn có biết điều này áp dụng cho Phiên bản cộng đồng của VS2015 không? Tôi dường như kết thúc với nhị phân 32 bit mặc dù cung cấp "address-model = 64"
paxos1977

@ paxos1977 Xin lỗi, tôi không biết - Tôi đã không thử điều này cho VS2015.
ecotax

Nó chắc chắn áp dụng cho phiên bản VS 2015 Express cho máy tính để bàn, chỉ cần tự mình trải nghiệm. Thay thế cho setenv là gọi "vcvarsall x86_amd64"
introiboad

1

Một ví dụ tối giản để giúp bạn bắt đầu trong Visual Studio:

1. Tải xuống và giải nén Boost từ đây.

2. Tạo một dự án trống Visual Studio, sử dụng thư viện boost ví dụ không yêu cầu biên dịch riêng:

#include <iostream>
#include <boost/format.hpp>

using namespace std;  
using namespace boost;  

int main()  
{  
    unsigned int arr[5] = { 0x05, 0x04, 0xAA, 0x0F, 0x0D };  

    cout << format("%02X-%02X-%02X-%02X-%02X")  
            % arr[0]  
            % arr[1]  
            % arr[2]  
            % arr[3]  
            % arr[4]  
         << endl;  
}  

3.Trong các thuộc tính dự án Visual Studio của bạn, thiết lập các Thư mục bao gồm bổ sung:

Thuộc tính dự án

Cho một ví dụ rất đơn giản:

Cách cài đặt thư viện Boost trong Visual Studio

Nếu bạn không muốn sử dụng toàn bộ thư viện boost, chỉ cần một tập hợp con:

Sử dụng tập hợp con của các thư viện boost trong Windows

Nếu bây giờ bạn đặc biệt muốn về các thư viện yêu cầu biên dịch:

Cách sử dụng các thư viện được biên dịch Boost trong Windows


0

Ngoài ra, có một cái gì đó tôi thấy rất hữu ích. Sử dụng các biến môi trường cho các đường dẫn tăng của bạn. (Cách đặt biến môi trường trong cửa sổ, liên kết ở dưới cùng cho 7,8,10) Biến BOOST_ROOT dường như là vị trí phổ biến nữa và được đặt thành đường dẫn gốc nơi bạn giải nén boost.

Sau đó, trong Thuộc tính, c ++, chung, Bổ sung Bao gồm các Thư mục $(BOOST_ROOT). Sau đó, nếu / khi bạn chuyển sang phiên bản mới hơn của thư viện boost, bạn có thể cập nhật biến môi trường của mình để trỏ đến phiên bản mới hơn này. Càng nhiều dự án của bạn, hãy sử dụng boost, bạn sẽ không phải cập nhật 'Thư mục bao gồm bổ sung' cho tất cả các dự án.

Bạn cũng có thể tạo một biến BOOST_LIB và chỉ ra nơi các lib được tổ chức. Tương tự như vậy đối với Trình liên kết-> Thư mục thư viện bổ sung, bạn sẽ không phải cập nhật dự án. Tôi có một số công cụ cũ được xây dựng với vs10 và công cụ mới với vs14 vì vậy đã xây dựng cả hai hương vị của lib lib cho cùng một thư mục. Vì vậy, nếu tôi chuyển một dự án từ vs10 sang vs14, tôi không phải thay đổi đường dẫn tăng.

LƯU Ý: Nếu bạn thay đổi một biến môi trường, nó sẽ không đột nhiên hoạt động trong dự án VS mở. VS tải các biến khi khởi động. Vì vậy, bạn sẽ phải đóng VS và mở lại nó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.