zoukankan      html  css  js  c++  java
  • c++中调用python脚本提示 error LNK2001: 无法解析的外部符号 __imp_Py_Initialize等错误的解决方法

    最近项目中需要实现一个服务器宕机后短信提醒的功能,个人觉得在使用Python 写http请求这块很方便,发短信这块就使用了python,但是c++程序中调用这个脚本时,编译不通过,提示如下错误:

    error LNK2001: 无法解析的外部符号 __imp_PyString_FromString
    error LNK2001: 无法解析的外部符号 __imp_PyCallable_Check

    error LNK2001: 无法解析的外部符号 __imp_PyObject_CallObject
    error LNK2001: 无法解析的外部符号 __imp_Py_Initialize

    error LNK2001: 无法解析的外部符号 __imp_Py_IsInitialized

    error LNK2001: 无法解析的外部符号 __imp_PyImport_Import

    error LNK2001: 无法解析的外部符号 __imp_PyModule_GetDict

    error LNK2001: 无法解析的外部符号 __imp_PyDict_GetItemString

    error LNK2001: 无法解析的外部符号 __imp_PyRun_SimpleStringFlags

    error LNK2001: 无法解析的外部符号 __imp_Py_Finalize

    fatal error LNK1120: 10 个无法解析的外部命令

           这里我们不提c++中怎么调用python,网上很多例子,以后要是有空,会考虑写一篇文章。先说下我自己的开发环境,win7 x64系统,vs2010,python2.7.8 64位。vs2010工程中属性->c/c++常规->附加包含目录 里面加上自己的python下的include路径。链接器->输入->附加依赖项 中添加python27.lib。然后配置此lib文件的路径,连接器->常规->附加库目录中写上python27lib所在的路径(就是python安装目录下得libs)。搞完后编译不通过,提示上面的错误信息,网上找了很久,基本上没解决问题。

          到底是为什么呢?原来,我在vs中得配置平台是win32,而pthon2.7是64位的,将配置平台改为活动x64后编译通过(平台如何修改:右击项目 -> 属性->最上面的平台修改即可)。

          总结下,要是你得相关头文件和依赖库都已经添加,还是出现上面的问题,不妨看看是不是和我犯了同样的错误,要是似的,两种方法解决

    1. python版本换成32位

    2.vs中平台设置成x64

    希望能帮助到和我遇到同样问题的童鞋们。

    转自:http://blog.csdn.net/u014489596/article/details/42124595

  • 相关阅读:
    P1217 [USACO1.5]回文质数 Prime Palindromes
    C++ 队列(queue)堆栈(stack)实现基础
    深入理解指针—>指针函数与函数指针的区别
    C语言结构体及typedef关键字定义结构体别名和函数指针的应用
    实现常用的配置文件/初始化文件读取的一个C程序
    C语言sscanf和sprintf输入输出使用及Strlen、Memset解释
    C语言一些基础知识
    Google的开源C++单元测试框架Google Test
    网站(Web)压测工具Webbench源码分析
    web压测工具http_load原理分析
  • 原文地址:https://www.cnblogs.com/lpxblog/p/6829831.html
Copyright © 2011-2022 走看看