代码之家  ›  专栏  ›  技术社区  ›  JR Lawhorne

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

  •  1
  • JR Lawhorne  · 技术社区  · 16 年前

    我需要将qt控制台应用程序构建为64位。即X86Y64

    我的配置文件如下:

    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提供的二进制文件。我猜这个版本不包含64位版本的库。我说的对吗?

    3 回复  |  直到 14 年前
        1
  •  0
  •   Jesse Vogt    16 年前

    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
  •  1
  •   Josep    14 年前

    qtskd默认情况下不包括mac os x中的64位库(我认为这很奇怪,但确实如此)。为了在x86_64中编译我的应用程序,我只下载带有cocoa(32/64位)的独立库,并在安装了sdk之后安装它们。

    那时一切都很有魅力。

        3
  •  0
  •   George White    15 年前

    您可以使用“文件”检查库:

    $file/library/frameworks/qtgui.framework/qtgui /library/frameworks/qtgui.framework/qtgui:mach-o通用二进制,4种架构 /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,因此错误消息具有误导性。

    推荐文章