我刚刚在雪豹10.6.3上安装了QT 4.6。我写了一个非常简单的程序。我可以使用qmake生成一个xcode项目,但我无法进入QT功能。我该如何设置?
答案 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目录下添加其他目录以供调试器全部选择。