C++编译dlib成功后导入运行出现LNK2001、LNK2019链接错误求助
问题解决方案
你遇到的两个链接错误可以分别按以下方法修复:
- 针对
USER_ERROR__missing_dlib_all_source_cpp_file__OR__inconsistent_use_of_DEBUG_or_ENABLE_ASSERTS_preprocessor_directives相关的LNK2001错误:- 确认当前项目的预处理器宏和你编译dlib Debug版本时的配置完全对齐:Debug模式下保持
DEBUG、ENABLE_ASSERTS宏的开启状态和编译dlib时一致,不要额外定义NDEBUG宏。 - 更简单的规避方案是直接将dlib源码路径下的
dlib/all/source.cpp文件添加到你的项目中一同编译,无需单独预编译dlib库,就能避免大部分配置不一致导致的链接问题。
- 确认当前项目的预处理器宏和你编译dlib Debug版本时的配置完全对齐:Debug模式下保持
- 针对
unresolved external symbol main的LNK2019错误:
C++可执行程序必须要有main函数作为入口,你当前的测试文件仅包含头文件引用,缺少入口函数,补充最小实现即可:#include <dlib/image_processing.h> int main() { // 后续业务逻辑可在此处添加 return 0; }
另外你遇到的两个C4834警告属于dlib 19.6版本的固有代码问题,是旧版本没有正确处理nodiscard属性的返回值导致,不会影响程序正常运行,你可以选择升级dlib到最新版本消除警告,或者在项目编译配置中临时禁用C4834警告。
内容的提问来源于stack exchange,提问作者Parth Shah
相关产品推荐
相关产品推荐

