如何编译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;
}
运行得到结果:


浙公网安备 33010602011771号