编译ceres的过程中发现编译debug版本时,不是报为编译成功的错,就是编译到最后卡死。但是编译release没有任何问题。
最终比对两者发现在编译debug版本时出现: LINK : warning LNK4098: 默认库“LIBCMT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library并且是不止一个工程出现此类问题。
经过查询发现出现此类问题是编译时试图链接不同版本的依赖库。因此,预计debug之所以编译困难可能是链接到了错误的库。最终,在CMakeLists中添加: set(CMAKE_EXE_LINKER_FLAGS /NODEFAULTLIB:"LIBCMT.lib") 再重复cmake编译过程即可完成编译。