WIN 10“libboost_thread_vc143-mt-gd-64-1_78.lib“和“debug assertion failed“解决办法

博客作者在运行体素化网格滤波代码时遇到错误,问题出在Boost库的编译和VC项目的运行时库设置上。首先,由于选择了错误的运行时库(MTd),导致报错。解决方法是将VC项目属性中的运行库从MTd改为MDd。其次,Boost库需要重新编译为64位Debug的静态链接库,通过指定命令行参数完成编译。经过这两个步骤,问题最终得到解决。
摘要由CSDN通过智能技术生成

问题描述:在运行https://blog.csdn.net/huhu7777/article/details/125323723?spm=1001.2014.3001.5501

 中的体素化网格滤波时报错:libboost_thread_vc143-mt-gd-64-1_78.lib

解决方法:boost库编译问题,gd  代表boost编译的debug类型,针对电脑系统,我们需重新编译boost为64位debug的静态链接库(不直接选择运行b2.exe),而是在链接

步骤中b2.exe替换执行以下代码(注意boost的版本与VS是否对应),重新完成boost的编译,VS配置Boost的步骤同上述链接

在项目-属性-链接器-常规-附加库目录-输入下载好的静态库路E:\boost\Boost_1_78\build\x64\lib

.\b2.exe variant=debug threading=multi threadapi=win32 link=static runtime-link=static --prefix=C:\boost_1_78_0 address-model=64 architecture=x86 install -j8

问题描述:

 在运行https://blog.csdn.net/huhu7777/article/details/125323723?spm=1001.2014.3001.5501

 中的体素化网格滤波时报错:一开始选择错的运行时库(VC项目属性→配置属性→C/C++→代码生成→运行库),对于MT(多线程)和MD(多线程DLL)皆用于release版本,对于MTd(多线程调试)和MDd(多线程调试DLL)则是用于Debug版本,MT和MTd多用于多线程静态库,MD和MDd用于多线程动态库,但使用MDd易产生野指针问题,但程序没有问题。

解决方法: VC项目属性→配置属性→C/C++→代码生成→运行库,由MTd改为MDd

 两天时间终于解决,希望对各位有所帮助!!

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值