如何在Mac OSX上以64位构建QT控制台应用程序?

时间:2009-07-13 17:07:47

标签: qt build-process 64-bit

我需要将我的QT控制台应用程序构建为64位。即x86_64

我的配置文件如下所示:

CONFIG += qt console debug x86_64
CONFIG -= app_bundle

HEADERS = HelperClass.h
SOURCES = HelperClass.cpp \
            main.cpp

编译没有问题。但是,当构建进入链接步骤时,它抱怨我没有Qt x86_64架构。

摘自编译:

ld: warning in /Library/Frameworks/QtGui.framework/QtGui, missing required architecture x86_64 in file
ld: warning in /Library/Frameworks/QtCore.framework/QtCore, missing required architecture x86_64 in file
Undefined symbols:
  "QIODevice::getChar(char*)", referenced from:
...

我是否需要下载Qt源并构建所需的架构才能实现此功能?我的安装来自QT站点上为Mac OSX-Qt 4.5.2提供的二进制文件。我猜这个版本没有64bit版本的库。我是对的吗?

3 个答案:

答案 0 :(得分:1)

QT SDK默认情况下不包括Mac OS X中的64位库(我认为这很奇怪但是就是这样)。为了在x86_64中编译我的应用程序,我只需使用Cocoa(32/64位)下载独立库,然后在安装SDK后安装它们。

一切都像魅力一样。

答案 1 :(得分:0)

Qt for Open Source C++ development on Mac OS X页面中,似乎应包含32位和64位库

  

使用Cocoa for Mac OS X 10.5(32位和64位)的Mac二进制包   http://get.qtsoftware.com/qt/source/qt-mac-cocoa-opensource-4.5.2.dmg

如果您仍然遇到问题,可以尝试从同一页面下载源代码:

  

http://get.qtsoftware.com/qt/source/qt-mac-opensource-src-4.5.2.tar.gz

并配置:

-arch x86_64

请参阅http://doc.trolltech.com/4.5/developing-on-mac.html#universal-binaries

请注意,上面的链接提到如果没有指定arch,则为当前平台构建32位。

答案 2 :(得分:0)

您可以使用“file”检查库:

$ file /Library/Frameworks/QtGui.framework/QtGui /Library/Frameworks/QtGui.framework/QtGui:具有4种架构的Mach-O通用二进制文件 /Library/Frameworks/QtGui.framework/QtGui(用于架构ppc64):Mach-O 64位动态链接共享库ppc64 /Library/Frameworks/QtGui.framework/QtGui(用于架构ppc7400):Mach-O动态链接共享库ppc /Library/Frameworks/QtGui.framework/QtGui(用于架构x86_64):Mach-O 64位动态链接共享库x86_64 /Library/Frameworks/QtGui.framework/QtGui(用于架构i386):Mach-O动态链接共享库i386

我看到相同的“ld警告:...缺少文件中所需的架构x86_64”错误,因此错误消息具有误导性。