在VS2012中C++嵌入python

  1、在VC++目录中添加头文件目录:c:\Python33\include

     添加库文件目录: c:\Python33\libs

     右击解决方案下的项目,选择"属性",即:

        在VS2012中C++嵌入python_第1张图片

        在VS2012中C++嵌入python_第2张图片

     2、在C:\Python33\include\pyconfig.h将python33.lib重命名为python33.lib,否则会出现错误:

fatal error LNK1104: 无法打开文件“python33_d.lib”

  还要右击项目属性:

  在VS2012中C++嵌入python_第3张图片

     在VS2012中C++嵌入python_第4张图片

   如果非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 位平台

  1. 打开要配置为面向 64 位平台的 C++ 项目。

  2. 打开该项目的属性页。有关更多信息,请参见 如何:打开项目属性页

    说明:

    对于 .NET 项目,请确保在“<项目名> 属性页”对话框中选择“配置属性”节点或其子节点之一。否则,“配置管理器”按钮仍为禁用。

  3. 单击“配置管理器”打开 “配置管理器”对话框

  4. 单击“活动解决方案平台”列表,然后选择“<新建...>”选项以打开 “新建解决方案平台”对话框

  5. 单击“键入或选择新平台”下拉箭头,然后选择一个 64 位平台。

    说明:

    “新建解决方案平台”对话框中,可以使用“从此处复制设置”选项将现有的项目设置复制到新的 64 位项目配置中。

  6. 单击“确定”。在上一步中选择的平台将出现在“配置管理器”对话框中的“活动解决方案平台”下。

  7. “配置管理器”对话框中单击“关闭”,然后在“<项目名> 属性页”对话框中单击“确定”

    附:C++代码:VS2012新建项目:win32控制台应用程序,修改项目名称,点击下一步,再点击完成。

    // CplusPython_1.cpp : 定义控制台应用程序的入口点。
    //
    
    #include "stdafx.h"
    
    #include "C:/Python33/include/Python.h"
    #pragma comment(lib, "C:\\Python33\\libs\\python33.lib")
    #include <iostream>
    using namespace std;
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	Py_Initialize();
    	PyRun_SimpleString("print ('hi,python!')");
    	Py_Finalize();
    	return 0;
    }
    

    看到这张图片,我趴下了
               在VS2012中C++嵌入python_第5张图片

你可能感兴趣的:(在VS2012中C++嵌入python)