VS中嵌入Python到C++遇LNK1104错误:找不到python310_d.lib
解决Visual Studio中嵌入Python时无法找到python310_d.lib的链接器错误
问题背景
你在Visual Studio中编写了嵌入Python的C++程序,编译时出现链接器错误,提示无法打开python310_d.lib,且在Python安装目录的lib文件夹中找不到该文件。
你的代码:
#include <iostream> #include <Python.h> using namespace std; int main(int argc, char const* argv[]) { Py_Initialize(); PyRun_SimpleString("print('Hellow Python')"); Py_Finalize(); return 0; }
错误信息:
Severity Code Description Project File Line Suppression State
Error LNK1104 cannot open file 'python310_d.lib' Project1 C:\Users\noob\source\repos\Project1\Project1\LINK 1
根本原因
默认安装的Python发行版仅提供Release版本的库文件(python310.lib),而Visual Studio的Debug编译模式会自动尝试链接调试版本的Python库(pythonXX_d.lib),该文件默认不存在于标准安装包中。
解决方法
方法1:切换到Release模式编译
这是最简单的解决方案:
- 在Visual Studio工具栏的编译模式下拉菜单中,将
Debug切换为Release - 重新编译项目,此时链接器会寻找
python310.lib,该文件在Python安装目录的lib文件夹中存在
方法2:在Debug模式下强制链接Release版本的Python库
如果需要保留Debug模式调试C++代码,可按以下步骤操作:
- 右键项目选择「属性」打开项目配置界面
- 进入链接器 -> 输入,在「附加依赖项」中添加
python310.lib - 进入C/C++ -> 预处理器,在「预处理器定义」中添加
PYTHON_NO_DEBUG_HEAP - 确认项目路径配置正确:
- VC++目录 -> 包含目录:添加Python安装目录下的
include文件夹(例如C:\Python310\include) - VC++目录 -> 库目录:添加Python安装目录下的
lib文件夹(例如C:\Python310\lib)
- VC++目录 -> 包含目录:添加Python安装目录下的
方法3:编译Python源码获取调试库
如果需要完整的Python调试支持(比如调试Python代码逻辑),则需要自行编译Python源码生成调试库:
- 从Python官网下载对应3.10版本的源码包
- 用Visual Studio打开源码中的
PCbuild\pcbuild.sln解决方案 - 选择Debug模式编译,编译完成后会生成
python310_d.lib和python310_d.dll - 将生成的库文件、头文件配置到你的C++项目中
内容的提问来源于stack exchange,提问作者Noob Coder
相关产品推荐
相关产品推荐

