为xcode调试设置qt

时间:2010-05-13 22:50:45

标签: xcode qt4 debugging

我刚刚在雪豹10.6.3上安装了QT 4.6。我写了一个非常简单的程序。我可以使用qmake生成一个xcode项目,但我无法进入QT功能。我该如何设置?

2 个答案:

答案 0 :(得分:2)

默认情况下,qt是使用调试和非调试库构建的。这是我的理解。例如,

% ls /Library/Frameworks/QtCore.framework/
Contents/           Headers@            QtCore@             QtCore.prl          QtCore_debug@       QtCore_debug.dSYM/  QtCore_debug.prl    Versions/

另外,我从Qt 4.7分支的源代码构建的默认值也有* _debug库。

设置Xcode是蛋糕,您只需设置项目并

% qmake -spec macx-xcode

这个-spec是官方mac发行版的默认设置,但是如果你从源代码构建自己的版本,则默认为macx-g ++,它会创建一个Makefile项目。

这会生成一个MyProject.xcodeproj,它预先配置为链接所有必需的Qt框架,设置路径,并将Release和Debug构建目标设置为与官方SDK相同的选项。

如果您需要首先从原始源目录生成qt项目文件,则假设您已设置qt项目文件:

% qmake -project

这些生成的* .xcodeproj文件的调试工作“开箱即用”。然而,有一个小“障碍”。由于Qt充满了自定义数据类型,因此Xcode不知道如何在调试器的摘要窗格中显示其“值”。例如,你无法看到QString具有什么价值。

有一种输入custom macros进行显示的方法,但我发现这些(经常?)不适用于QObjects。

为了实现这一点,我开始了一个使用xcode的调试器c回调的项目(在上面的链接文章中也提到过,尽管他们的例子甚至不起作用o.O)。我称之为Qt4DataFormatters

我刚刚启动它,并在需要时添加了类型。使用现有功能作为模板创建一个很简单。

答案 1 :(得分:1)

我没有在Mac上试过这个,但在Linux上你需要采取以下过程:

首先,您需要设置Qt,以便它具有可用的调试符号:

./configure -debug-and-release separate-debug-info # other options

使用调试符号,您现在应该能够获得有效的堆栈跟踪。

使用qmake构建应用程序时,需要在项目文件中设置debug(或debug_and_release)标记:

CONFIG += debug

完成后,您只需要告诉调试器Qt源所在的位置:

(gdb) dir /path/to/qt/src

之后,list应该显示实际的Qt源代码。您可能需要在src目录下添加其他目录以供调试器全部选择。