如何编译boost到windows使用[vs2019版本]
1.下载boost_1_75_0.tar.gz,解压到E:\cpp\boost_1_75_0
2.运行E:\cpp\boost_1_75_0目录下的b2.exe,生成对应的bjam.exe
3.bjam.exe在目录E:\cpp\boost_1_75_0\tools\build\src\engine, 把他拷贝到
E:\cpp\boost_1_75_0
4.到windows菜单栏找一个visual studio的命令行工具:Developer Command Prompt v16.0.4
运行:
bjam stage --toolset=msvc-14.2 --without-python --stagedir="E:\cpp\boost_1_75_0" link=static runtime-link=shared runtime-link=static threading=multi debug release
生成vs2019版本的lib文件到E:\cpp\boost_1_75_0\lib
5.新建cpp工程,设置VC++目录如下:
包含目录增加:E:\cpp\boost_1_75_0;
库目录增加: E:\cpp\boost_1_75_0\lib;
运行代码:
/* This example parses a JSON file and pretty-prints it to standard output. */ #include <boost/json.hpp> #include <iomanip> #include <iostream> namespace json = boost::json; void pretty_print(std::ostream& os, json::value const& jv, std::string* indent = nullptr) { std::string indent_; if (!indent) indent = &indent_; switch (jv.kind()) { case json::kind::object: { os << "{\n"; indent->append(4, ' '); auto const& obj = jv.get_object(); if (!obj.empty()) { auto it = obj.begin(); for (;;) { os << *indent << json::serialize(it->key()) << " : "; pretty_print(os, it->value(), indent); if (++it == obj.end()) break; os << ",\n"; } } os << "\n"; indent->resize(indent->size() - 4); os << *indent << "}"; break; } case json::kind::array: { os << "[\n"; indent->append(4, ' '); auto const& arr = jv.get_array(); if (!arr.empty()) { auto it = arr.begin(); for (;;) { os << *indent; pretty_print(os, *it, indent); if (++it == arr.end()) break; os << ",\n"; } } os << "\n"; indent->resize(indent->size() - 4); os << *indent << "]"; break; } case json::kind::string: { os << json::serialize(jv.get_string()); break; } case json::kind::uint64: os << jv.get_uint64(); break; case json::kind::int64: os << jv.get_int64(); break; case json::kind::double_: os << jv.get_double(); break; case json::kind::bool_: if (jv.get_bool()) os << "true"; else os << "false"; break; case json::kind::null: os << "null"; break; } if (indent->empty()) os << "\n"; } int main(int argc, char** argv) { json::object obj; obj.emplace("key1", "value1"); obj.emplace("key2", 42); obj.emplace("key3", false); pretty_print(std::cout, obj); return EXIT_SUCCESS; }
运行得到结果: