有没有人尝试编译Boost.Json静态库?无法生成libboost_json.a如何解决
Boost.Json静态库libboost_json.a未生成的排查方案
- 确认Boost版本合规:Boost.Json从1.75.0版本才正式加入官方库,低于该版本的Boost源码不包含Json组件,添加
--with-json参数也不会触发对应编译逻辑。 - 补充静态库编译参数:默认编译配置仅生成动态库,需要额外添加
link=static参数指定生成静态库,最简参考命令如下:
./bootstrap.sh ./b2 --with-json link=static stage
如果需要指定运行时链接方式、编译版本、线程模型等,可补充对应参数:./b2 --with-json link=static runtime-link=static variant=release threading=multi install
- 检查库文件生成路径:
- 执行
stage指令的情况下,生成的静态库默认存放在Boost源码根目录的stage/lib文件夹下 - 执行
install指令的情况下,库文件会安装到--prefix参数指定的路径,未指定前缀时默认安装到/usr/local/lib
- 执行
- 排查命名规则差异:部分平台编译生成的静态库会携带编译工具链、版本号、架构等后缀,比如
libboost_json-gcc12-mt-x64-1_83.a,可全局搜索文件名包含boost_json且后缀为.a的文件确认生成结果。
内容的提问来源于stack exchange,提问作者Rajeev
相关产品推荐
相关产品推荐

