配置OpenCV与Visual Studio时出现LNK1104无法打开python37_d.lib错误
错误根因
你使用的OpenCV二进制包编译时开启了Python3绑定模块,Visual Studio Debug模式下链接会自动匹配依赖的Debug版本Python库,而标准Python发行版默认不安装python37_d.lib这个debug版本库,因此触发LNK1104错误。
解决方案
方案1:禁用OpenCV Python模块链接(纯C++开发优先选择)
打开项目根目录的CMakeLists.txt,在find_package(OpenCV)语句前添加配置,指定仅加载需要的OpenCV核心模块,跳过Python相关模块:# 仅指定你需要用到的OpenCV模块,可根据业务需求增减 set(OpenCV_FIND_COMPONENTS core imgproc highgui imgcodecs videoio calib3d) find_package(OpenCV REQUIRED ${OpenCV_FIND_COMPONENTS})改完后删除原有CMake缓存,重新生成构建文件再编译即可。
方案2:临时忽略指定库(适合快速调试场景)
打开Visual Studio当前项目的属性面板,依次进入配置属性 > 链接器 > 输入 > 忽略特定默认库,添加python37_d.lib后保存,重新编译即可。注意该配置会在CMake重新生成缓存后失效,需要重新设置。方案3:安装Python Debug库(需要使用OpenCV Python绑定的场景)
运行Python 3.7的安装程序,选择修改,在可选组件中勾选Debug 二进制文件完成安装后,python37_d.lib会自动写入Python安装目录的libs文件夹,VS编译时可直接搜索到该文件。
内容的提问来源于stack exchange,提问作者Circuit_Breaker0.7
相关产品推荐
相关产品推荐

