【问题标题】:Installing debug version of Qt on Mac OSX在 Mac OSX 上安装 Qt 的调试版本
【发布时间】:2009-07-16 10:32:00
【问题描述】:

我需要单步调试 Qt 代码来帮助解决我的 C++ 应用程序中的错误。我已经从here 下载了 qt-mac-opensource-src-4.5.2.tar 并按照随附的安装说明进行操作:

  1. 将文件解压到 /tmp。
  2. 键入 ./configure -debug.
  3. 输入品牌。
  4. 键入 sudo make install。
  5. 按照说明编辑了 PATH 环境变量。
  6. DYLD_IMAGE_SUFFIX 环境变量设置为_debug。

这个安装的 Qt 和我的 Qt 应用程序运行,但我仍然无法进入 Qt 代码。

我正在使用 Xcode 3.1.3 并尝试将可执行信息更改为“加载框架时使用调试后缀”。这产生了很多警告,例如:

警告:找不到目标文件“/private/tmp/qt-mac-opensource-src-4.5.2/src/corelib/.obj/debug-shared/qmalloc.o” - 没有调试信息可用于“global/qmalloc.cpp”。

警告:找不到目标文件“/private/tmp/qt-mac-opensource-src-4.5.2/src/corelib/.obj/debug-shared/qnumeric.o” - 没有调试信息可用于“global/qnumeric.cpp”。

还有很多与 qt 无关的警告。

我会在一夜之间关闭 Macbook Pro,我只能假设它会清除 tmp 目录,因为解压缩的文件不再存在。

我认为我可以通过在没有框架的情况下重建 Qt 来修复它,但这更像是一种变通方法,而不是可能会回来咬我的修复方法。我也有点不愿意这样做,因为每次重建需要 3 到 4 个小时。

或者,下载二进制文件和调试库是否可行?

如果您对我缺少什么以及如何解决这个问题提出任何建议,我将不胜感激。

谢谢。

【问题讨论】:

    标签: macos qt


    【解决方案1】:

    在 Qt 支持的帮助下,我现在已经解决了这个问题。

    有几个问题:

    • Qt 调试“make install”当前不为 _debug 东西生成 dSYM 文件。他们提出了一个关于这个的错误。为了解决这个问题:

      4a。 cd /usr/local/Trolltech/Qt-4.5.2/lib
      4b。输入/usr/bin/dsymutil -o QtGui.framework/QtGui_debug.dSYM QtGui.framework/Versions/4/QtGui_debug
      4c。对每个 Qt 框架重复此操作。

    • tmp 目录确实会在每次重新启动时被擦除。为了解决这个问题:

      7- 将/tmp/qt-mac-opensource-src-4.5.2的全部内容复制到一个新目录~/Qt

    我还将框架和源代码都添加到了 Xcode 项目中。

    【讨论】:

      【解决方案2】:

      看看这个http://doc.trolltech.com/4.5/debug.html 有一个专门用于在 MacOSX 和 Xcode 下调试的部分...... 我想您需要使用 qmake 生成带有调试选项的makefile!

      【讨论】:

      • 感谢您的回复。据我了解,当 Qt 安装为 dylibs 而不是框架时,您建议使用 qmake 生成带有调试选项的 makefile 是相关的。等效的框架是设置我尝试过的 DYLD_IMAGE_SUFFIX。我现在已经设法在不单步执行代码的情况下修复了我的错误,并且提出了 Qt 的问题,因为他们建议将我需要单步执行代码的文件放在临时目录中似乎是错误的。如果我找到解决方案,我会更新这个问题。谢谢。
      【解决方案3】:

      在 OS X 10.6 和 10.6.1 中,将 DYLD_IMAGE_SUFFIX 设置为 _debug will cause problems。希望这将在 OS X 10.6 的未来更新中得到解决。

      【讨论】:

        最近更新 更多