我想这是一个问题。
我正在编写有关嵌入python解释器的文档。我已经完成了编译和链接的所有内容,只有应用程序在运行时崩溃(特别是它无法加载,因此它甚至没有开始运行)。
我正在运行Windows 7专业版64位。我正在编译mingw的最新夜间版本,使用msys(与安装程序一起打包,因此我认为没有兼容性不匹配)。使用默认存储库python 3.1和build-essential工具在Ubuntu 10.10上编译相同的代码。
到目前为止,在我的研究中,我认为这可能是将“32位应用程序(因为mingw使用32位,据我所知)与64位库(python dll)”之间的“问题”。
我可以完整地发布代码,但是因为这往往是一个链接/运行问题,所以我只包含makefile开头。从下面的makefile中,我将Python3.dll从C:\ Python32 \ DLLs复制到我的项目目录中。另外值得注意的是,我必须创建自己的.def然后从DLL创建.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)
答案 0 :(得分:0)
如果python3.dll肯定是64位且你的应用程序肯定是32位,那么这将无效。您无法从32位应用程序链接到64位dll。指针将无法工作between the two models。
答案 1 :(得分:0)
您无法在同一进程中混合使用32位和64位图像。结束。的。故事。