在VS2012中C++嵌入python
Posted 毛毛虫的爹
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在VS2012中C++嵌入python相关的知识,希望对你有一定的参考价值。
1、在VC++目录中添加头文件目录:c:\\Python33\\include
添加库文件目录: c:\\Python33\\libs
右击解决方案下的项目,选择"属性",即:
2、在C:\\Python33\\include\\pyconfig.h将python33.lib重命名为python33.lib,否则会出现错误:
fatal error LNK1104: 无法打开文件“python33_d.lib”
还要右击项目属性:
如果非64位机,请忽略下文
3、 由于PYTHON是64版本,所以将解决方案平台定义为‘ X64’。这里没改之前是’WIN32’,编译可以成功,但是链接时会出现错误:
error LNK2019: 无法解析的外部符号 __imp__PyObject_GetAttrString,该符号在函数 _main 中被引用
error LNK2019: 无法解析的外部符号 __imp__Py_Initialize,该符号在函数 _main 中被引用
error LNK2019: 无法解析的外部符号 __imp__Py_Finalize,该符号在函数 _main 中被引用
error LNK2019: 无法解析的外部符号 __imp__PyEval_CallObjectWithKeywords,该符号在函数 _main 中被引用
error LNK2019: 无法解析的外部符号 __imp__PyImport_ImportModule,该符号在函数 _main 中被引用
修改平台后,编译链接正常。
修改平台步骤如下:
将 C++ 应用程序设置为面向 64 位平台
打开要配置为面向 64 位平台的 C++ 项目。
打开该项目的属性页。有关更多信息,请参见 如何:打开项目属性页。
说明:
对于 .NET 项目,请确保在“<项目名> 属性页”对话框中选择“配置属性”节点或其子节点之一。否则,“配置管理器”按钮仍为禁用。
单击“配置管理器”打开 “配置管理器”对话框。
单击“活动解决方案平台”列表,然后选择“<新建…>”选项以打开 “新建解决方案平台”对话框。
单击“键入或选择新平台”下拉箭头,然后选择一个 64 位平台。
说明:
在“新建解决方案平台”对话框中,可以使用“从此处复制设置”选项将现有的项目设置复制到新的 64 位项目配置中。
单击“确定”。在上一步中选择的平台将出现在“配置管理器”对话框中的“活动解决方案平台”下。
在“配置管理器”对话框中单击“关闭”,然后在“<项目名> 属性页”对话框中单击“确定”。
附:C++代码:VS2012新建项目:win32控制台应用程序,修改项目名称,点击下一步,再点击完成。
// CplusPython_1.cpp : 定义控制台应用程序的入口点。
//
#include “stdafx.h”
#include “C:/Python33/include/Python.h”
#pragma comment(lib, “C:\\Python33\\libs\\python33.lib”)
#include
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
Py_Initialize();
PyRun_SimpleString(“print (‘hi,python!’)”);
Py_Finalize();
return 0;
}
看到这张图片,我趴下了
以上是关于在VS2012中C++嵌入python的主要内容,如果未能解决你的问题,请参考以下文章