欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

LNK1104 无法打开文件“libboost_system-vc141-mt-gd-x64-1_68.lib”

程序员文章站 2024-03-14 11:09:58
...

LNK1104 无法打开文件“libboost_system-vc141-mt-gd-x64-1_68.lib”

笔者的情况:
1:Visual Studio 2017 已经设置 项目属性 -> VC++目录->包含目录和库目录
但是在编译工程时依然报错,网上找资料各种解决方法都有,这里贴下我认为靠谱的解决方法

解决方案:

1:

确保你的工程平台对应你生成的boost lib ,例如x64工程对应x64的lib这个不用多说了

2:

举个boost生成语句的例子:

b2 stage --toolset=msvc-14.1 --without-graph --without-graph_parallel --stagedir="F:\boost_1_68_0\build\lib" link=static runtime-link=static runtime-link=static threading=multi debug release

重点关注【runtime-link=X】 X的取值是share和static,前者指定生成动态lib,后者则是生成静态lib。

3:

重点

X = static 时 项目属性 → C/C++ →代码生成 → 运行库 【多线程调试(/MTd)】
X = share 时 项目属性 → C/C++ →代码生成 → 运行库 【多线程调试 DLL (/MDd)】

4 :

重新生成下工程就OK了




演示:【笔者用的是static的方式】

1:默认使用的是MDd模式,可以看到编译时报错了

LNK1104 无法打开文件“libboost_system-vc141-mt-gd-x64-1_68.lib”

2: 然后我们修改为 MTd模式, 可以看到编译成功了
LNK1104 无法打开文件“libboost_system-vc141-mt-gd-x64-1_68.lib”

笔者没有试过share的方式,理论上share选的应该是DLL的方式

相关标签: boost