Solution for link error:Cannot Open File 'python27_d.lib'
版权所有,转载请注明出处:http://guangboo.org/2013/01/17/solution-link-errorcannot-open-file-python27_dlib
使用C调用Python函数或解释器时,在添加了Include Directories和Library Directories等配置后,仍然编译错误:"LINK : fatal error LNK1104: cannot open file 'python27_d.lib'".代码如下:
#include <stdio.h>
#include <Python.h>
int main(void)
{
Py_Initialize();
if(!Py_IsInitialized()){
printf("Python Initialize failed.\n");
return 1;
}
PyRun_SimpleString("print('hello world!')");
Py_Finalize();
system("pause");
return 0;
}
*贴出了pyconfig.h头文件中对Python27_d.lib的引用(http://*.com/questions/11311877/creating-a-dll-from-a-wrapped-cpp-file-with-
swig/14372472#14372472),该文件用于调试用,如下代码:
/* For Windows the Python core is in a DLL by default. Test
Py_NO_ENABLE_SHARED to find out. Also support MS_NO_COREDLL for b/w compat */
#if !defined(MS_NO_COREDLL) && !defined(Py_NO_ENABLE_SHARED)
# define Py_ENABLE_SHARED 1 /* standard symbol for shared library */
# define MS_COREDLL /* deprecated old symbol */
#endif /* !MS_NO_COREDLL && ... */
/* All windows compilers that use this header support __declspec */
#define HAVE_DECLSPEC_DLL
/* For an MSVC DLL, we can nominate the .lib files used by extensions */
#ifdef MS_COREDLL
# ifndef Py_BUILD_CORE /* not building the core - must be an ext */
# if defined(_MSC_VER)
/* So MSVC users need not specify the .lib file in
their Makefile (other compilers are generally
taken care of by distutils.) */
# ifdef _DEBUG
# pragma comment(lib,"python27_d.lib")
# else
# pragma comment(lib,"python27.lib")
# endif /* _DEBUG */
# endif /* _MSC_VER */
# endif /* Py_BUILD_CORE */
#endif /* MS_COREDLL */
可以发现,只有MS_NO_COREDLL或Py_NO_ENABLE_SHARED被定义了,那么#ifdef MS_COREDLL块的代码就不会被编译。因此可以在Configuration Properties->C/C++->Preprocessor->Preprocessor Definitions添加MS_NO_COREDLL或Py_NO_ENABLE_SHARED,去掉_DEBUG,将没有效果。也可以在引用python.h头文件前添加#define MS_NO_COREDLL或#define Py_NO_ENABLE_SHARED。
上一篇: OpenGL基础代码整理
下一篇: vue使用axios实现异步请求
推荐阅读
-
解决启动MongoDB错误:error while loading shared libraries: libstdc++.so.6:cannot open shared object file:
-
解决error while loading shared libraries: libXXX.so.X: cannot open shared object file: No such file
-
error while loading shared libraries: xxx: cannot open shared object file: No such file or directory
-
gmx-MMPBSA — error while loading shared libraries: libgfortran.so.3: cannot open shared object file
-
mysql初始化/usr/local/mysql/bin/mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory
-
fatal error RC1015: cannot open include file ‘targetver.h‘
-
Solution for link error:Cannot Open File 'python27_d.lib'
-
pycorrector安装失败、kenlm安装失败,提示LINK : fatal error LNK1181: cannot open input file 'stdc++.lib'
-
boost编译之 fatal error C1083: Cannot open source file: 'yyacc.c': No such file or directory
-
STM32程序编写报错集(1)——stm32f10x.h(478): error: #5: cannot open source input file “core_cm3.h“