c++中调用python脚本提示 error LNK2001: 无法解析的外部符号 __imp_Py_Initialize等错误的解决方法
2014-12-24 15:38
876 查看
最近项目中需要实现一个服务器宕机后短信提醒的功能,个人觉得在使用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
希望能帮助到和我遇到同样问题的童鞋们。
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
希望能帮助到和我遇到同样问题的童鞋们。
相关文章推荐
- c++中调用python脚本提示 error LNK2001: 无法解析的外部符号 __imp_Py_Initialize等错误的解决方法
- c++中调用python脚本提示 error LNK2001: 无法解析的外部符号 __imp_Py_Initialize等错误的解决方法
- [VS2013]C++中调用Python脚本提示 error LNK2001: 无法解析的外部符号__imp_PyString_FromString等错误的解决方案
- c++中调用python脚本提示 error LNK2001: 无法解析的外部符号
- QT中添加Q_OBJECT时编译提示obj : error LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject const错误解决方法
- error LNK2001: 无法解析的外部符号 __imp__htonl@4(编程解决方法)
- c++计时遇到错误:error LNK2001:无法解析的外部符号_imp_timeGetTime
- c++连接mysql并提示“无法解析的外部符号 _mysql_server_init@12”解决方法
- 错误 1 error LNK2019: 无法解析的外部符号 __imp__pthread_create,该符号在函数 _main 中被引用 解决方法
- C++中运用模版报“无法解析的外部符号”错误解决方法
- c++连接mysql并提示“无法解析的外部符号 _mysql_server_init@12”解决方法
- C++ ODBC 函数报无法解析的外部函数错误的解决方法
- gSoap的“error LNK2001: 无法解析的外部符号 _namespaces”解决方法
- vs2008中,静态库调用时报错:“无法解析的外部符号 _,该符号在函数 _wmain 中被引用”的解决方法
- LNK2001:无法解析的外部符号 错误常见解决方法
- gSoap的“error LNK2001: 无法解析的外部符号 _namespaces”解决方法
- 解决链接错误:error LNK2001: 无法解析的外部符号 __iob
- "链接器工具错误 LNK 2001 无法解析外部符号 __security_cookie " 解决方法
- APR lib 链接出现”error LNK2019: 无法解析的外部符号 __imp__apr_initialize“ 解决办法
- 解决Opengl编译时error LNK2001: 无法解析的外部符号 __imp____glutInitWithExit@12