河曲智叟 发表于 2024-8-26 21:00:51

VS2022配置编译使用boost库

1、下载boost最新版本,以1.85为示例:
Boost Downloads
https://i-blog.csdnimg.cn/direct/7124aac17fee41ca8f6f180b50e9cb90.png
2、解压boost文件至D:\boost_1_85_0
https://i-blog.csdnimg.cn/direct/a22f38abbaa54c6ba57e67a9804a555c.png
3、打开VS2022命令行(赤色区域不要进错了!)
https://i-blog.csdnimg.cn/direct/ed31409aa98140e19db60f6c4df337a7.png
4、在命令行输入以下
https://i-blog.csdnimg.cn/direct/f99bb7efa1e6467aafaa6ead09d162de.png
5、输入bootstrap.bat后会自动天生b2.exe
6、待第5步完成,依次输入这两行命令(这里根据电脑硬件配置决定,通常3-10分钟完毕)
# 生成32位
b2 toolset=msvc-14.3 --build-type=complete architecture=x86 address-model=32 threading=multi link=static,shared variant=debug,release stage

# 生成64位
b2 toolset=msvc-14.3 --build-type=complete architecture=x86 address-model=64 threading=multi link=static,shared variant=debug,release stage
7、命令行参数注释(可不用理会)
toolset=msvc-14.3                                                 指定了使用 Visual Studio 2017 编译器。
--build-type=complete                                         表示构建所有 Boost 组件。
architecture=x86 和 address-model=32         指定了生成 32 位架构的库。
architecture=x86 和 address-model=64         指定了生成 64 位架构的库。
threading=multi                                                 表示多线程支持。
link=static,shared                                                 表示同时生成静态库和动态库。
variant=debug,release                                         表示同时编译调试和发布版本。 8、在使用时间,VS中需要设置以下关键位置:
# 头文件目录
D:\boost_1_85_0;

# lib库目录
D:\boost_1_85_0\stage\lib;
https://i-blog.csdnimg.cn/direct/730e0e1ebeb845bdba26cfc20456bbbb.png
https://i-blog.csdnimg.cn/direct/65313400d15042ce942613cf15df2009.png

9、上面的路径设好后,写一段测试代码试试:
#include <boost/lexical_cast.hpp>   
#include <iostream>   

using namespace std;
using namespace boost;

int main(){

        double a = lexical_cast<double>("3.141592");
        string str = lexical_cast<string>("3.141592");
        cout << "This is a number: " << a << endl;
        cout << "This is a string: " << str << endl;
        int b = 0;
        try {
                b = lexical_cast<int>("xiaomi_su7");
        }
        catch (bad_lexical_cast& e) {
                cout << e.what() << endl;
        }
        return 0;
}


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: VS2022配置编译使用boost库