LINK : fatal error LNK1104: 无法打开文件“libboost_filesystem-vc141-mt-sgd-x64-1_72.lib”

安装配置PCL时遇到了一些问题,在VS中链接了Boost的lib,但是运行代码时:

LINK : fatal error LNK1104: 无法打开文件“libboost_filesystem-vc141-mt-gd-x64-1_72.lib”

后来还遇到了:

LINK : fatal error LNK1104: 无法打开文件“libboost_filesystem-vc141-mt-sgd-x64-1_72.lib”

去PCL的目录下找到boost目录,发现lib里面的是

libboost_filesystem-vc142-mt-gd-x64-1_72.lib

 vc表示的是VisualStudio的编译器MSVC版本,vc14.2对应的是VS2019,而我使用的是VS2017,对应的vc是14.1(参考:https://blog.csdn.net/dingding1022/article/details/102155840),所以程序在运行的时候会需要141的而不是142的lib包。

LINK : fatal error LNK1104: 无法打开文件“libboost_filesystem-vc141-mt-sgd-x64-1_72.lib”_第1张图片

 

解决办法是:

1.重新安装低版本的PCL(不要啊,配置环境变量链接库好累)

2.下载boost,然后自己编译成14.1的

3.使用VS2019

结合自己的情况,决定选2

编译Boost

参考:https://blog.csdn.net/gllg1314/article/details/80198864

我用的版本是1.72,去boost官网下载zip(下载太慢就加一点魔法),解压。然后去找VS2017里的命令行工具

cd到解压的目录下,执行

bootstrap.bat

对比其他博客,发现没有生成bjam.exe,不过只要有b2.exe就够了,因为两者都是一样的。

执行

b2 address-model=64 --toolset=msvc-14.1 link=static runtime-link=shared runtime-link=static threading=multi debug release

注意,要想获得libboost_xxx_gd_xx形式,需要将参数设置为 :link=static

想获得libboost_xxx_gd_xx形式,参数为 :runtimelink=shared link=static

想获得libboost_xxx_sgd_xx形式,参数为:runtimelink=static link=static

当然你也可以build-type=complete,这样生成的lib里就各个版本都有了。

LINK : fatal error LNK1104: 无法打开文件“libboost_filesystem-vc141-mt-sgd-x64-1_72.lib”_第2张图片

想获得boost_xxx_xxx的形式,参数为:runtimelink=shared link=shared

可以参考https://www.cnblogs.com/blog-vincent-0x1F7/p/9646358.html

提取目录下文件名,用来向VS中添加依赖项。

你可能感兴趣的:(LINK : fatal error LNK1104: 无法打开文件“libboost_filesystem-vc141-mt-sgd-x64-1_72.lib”)