ceres编译:debug卡死或者失败,release成功

在编译Ceres的debug版本时遇到LINK警告LNK4098,提示默认库LIBCMT与其他库冲突。这表明可能存在库版本不一致的问题。为了解决这个问题,在CMakeLists中添加/NODEFAULTLIB:LIBCMT.lib,然后重新执行cmake编译步骤,成功解决了debug模式下的编译难题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        编译ceres的过程中发现编译debug版本时,不是报为编译成功的错,就是编译到最后卡死。但是编译release没有任何问题。

        最终比对两者发现在编译debug版本时出现:           LINK : warning LNK4098: 默认库“LIBCMT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library并且是不止一个工程出现此类问题。

        经过查询发现出现此类问题是编译时试图链接不同版本的依赖库。因此,预计debug之所以编译困难可能是链接到了错误的库。最终,在CMakeLists中添加:                   set(CMAKE_EXE_LINKER_FLAGS /NODEFAULTLIB:"LIBCMT.lib")                           再重复cmake编译过程即可完成编译。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值