2010-11-10 256 views
0

全部问候,使用64位应用程序链接QT 32位库(MinGW64编译器)?

在我的应用程序中,我需要分配内存beyong 4GB memory-地址空间。所以我需要在64位编译我的应用程序。

我的开发环境是QT 32位库(LGPL),并且将使用MinGW64编译64位版本。 由于QT不支持MinGW64(仅支持32位),我可以将32位QT库与我的64位应用程序连接吗?

在此先感谢。

回答

3

@umanga 我的回答没有回答你的问题,但它可能会告诉你你真正想做什么的详细信息 - 使用MinGW-w64构建Qt 64位库。

正如MSalters建议的那样,将Qt移植到64位环境可能会更简单。此外,Qt 4.7与目前的MinGW-w64兼容99.99%。我今天早上自己试着用MinGW-w64自己编译Qt 4.7(包括Webkit,但Phonon没有)。

您只需修改一行Qt源代码即可获得成功的Qt构建。详细步骤在my blog中提供 - “毕竟它是开放源代码”。

+0

嗨,pinyote。感谢您的答案。事实上,我在你的博客问这个问题:) – 2010-11-15 00:44:09

4

不,你不能。 64位进程无法加载32位DLL。

+1

+1。如果你仔细想一想,这是有道理的 - 如果/当你交给它64位指针,32位代码会做什么;) – 2010-11-10 01:37:27

+0

我只在应用程序数据结构中使用64位指针。我不打算干涉32位QT库。所以,尽管我的应用程序使用64位地址空间,但32位QT库只能使用32位地址空间。 – 2010-11-10 01:45:18

+1

@umanga:如果你想知道为什么,仍然无法完成,每个进程都有一些CPU定义的结构,这些结构除了别的以外还决定CPU在哪个模式下(64位/ 32位)流程。 DLL只是在运行时将代码/数据加载到进程的地址空间中,应用程序只有一个地址空间,并且只能处于一种模式。 – 2010-11-10 01:50:05

相关问题