Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/152.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++链接到Python 3.2 X64应用程序无法加载_C++_Python_G++_Python 3.x_Windows 7 X64 - Fatal编程技术网

C++链接到Python 3.2 X64应用程序无法加载

C++链接到Python 3.2 X64应用程序无法加载,c++,python,g++,python-3.x,windows-7-x64,C++,Python,G++,Python 3.x,Windows 7 X64,我想这是一个分为几个部分的问题 我正在阅读有关嵌入python解释器的文档。我已经非常出色地完成了所有的编译和链接工作,只是当我运行应用程序时,应用程序崩溃了,因为它无法加载,所以它甚至还没有开始运行 我正在运行64位windows 7 professional。我正在编译mingw的最新夜间版本,使用msys,它是与安装程序打包在一起的,因此我相信没有兼容性不匹配。同样的代码在Ubuntu10.10上使用默认的存储库Python3.1和构建基本工具进行编译 到目前为止,在我的研究中,我相信这可

我想这是一个分为几个部分的问题

我正在阅读有关嵌入python解释器的文档。我已经非常出色地完成了所有的编译和链接工作,只是当我运行应用程序时,应用程序崩溃了,因为它无法加载,所以它甚至还没有开始运行

我正在运行64位windows 7 professional。我正在编译mingw的最新夜间版本,使用msys,它是与安装程序打包在一起的,因此我相信没有兼容性不匹配。同样的代码在Ubuntu10.10上使用默认的存储库Python3.1和构建基本工具进行编译

到目前为止,在我的研究中,我相信这可能是链接32位应用程序之间的问题,因为据我所知,mingw使用32位与64位库python dll

但是,我可以完整地发布代码,因为这往往是一个链接/运行问题,所以我仅从makefile开始。从下面的makefile中,我将Python3.dll从C:\Python32\dll复制到我的项目目录中。同样值得注意的是,我必须从DLL中创建自己的.def和.a,以便链接其他方面找不到的符号。这可能是我的问题的根源吗

从命令行和资源管理器运行a.exe后,我会收到一个标准警报窗口,其中包含:

应用程序错误:应用程序无法正确启动0xc000007b。单击“确定”关闭应用程序

如果我错了,请纠正我,但这表明我的可执行文件在某种程度上已损坏

我已经测试了我的编译器/链接器,以确保它不是编译器/链接器问题。它包括,并且当应用程序不使用python时,在编译、链接或运行时不会引发任何错误

谢谢你在这件事上提供的任何帮助或帮助。这真让我难堪。 pcnerd

生成文件

FILE= main.cpp
LIBS=  -lpython3
LIBPATH= -L/c/python32/libs
INCLUDEPATH = -I/c/python32/include
CPP=g++
FLAGS = -g

build:
    $(CPP) $(FLAGS) $(FILE) $(LIBS) $(LIBPATH) $(INCLUDEPATH)

如果python3.dll肯定是64位的,而您的应用程序肯定是32位的,那么这将不起作用。无法从32位应用程序链接到64位DLL。指针无法工作。

不能在同一个过程中混合使用32位和64位图像。终止属于故事。

我认为python是64位的,但没有具体说明它是64位的。因此,我必须从源代码处编译它,或者将我的工具集更新为64位mingw-w64?是时候多做点事了,太麻烦了。只要使用32位版本的Python,我同意。只是我不知道它是64位python。我必须重新安装/new install到不同的x86目录。