настройка qt для отладки xcode - PullRequest
2 голосов
/ 14 мая 2010

Я только что установил QT 4.6 на снежном барсе 10.6.3. Я написал действительно простую программу. Я могу сгенерировать проект xcode, используя qmake, но не могу войти в функцию QT. Как мне это настроить?

Ответы [ 2 ]

2 голосов
/ 18 мая 2010

По умолчанию, 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, если вам нужно сначала сгенерировать его из необработанного исходного каталога:

% qmake -project

Отладка работает "из коробки" для этих сгенерированных * .xcodeproj файлов. Однако есть одна маленькая "заминка". Так как Qt полон пользовательских типов данных, Xcode не знает, как отобразить их «значения» в сводной панели отладчика. Так что вы не видите, например, какое значение имеет QString.

Существует метод ввода пользовательских макросов для отображения, но я обнаружил, что они часто (всегда?) Не работают для объектов QObject.

Чтобы это заработало, я запустил проект, который использует обратные вызовы отладчика c для xcode (также упомянутые в приведенной выше статье, хотя их пример даже не работает o.O). Я называю это Qt4DataFormatters .

Я только начал и добавлял типы по мере необходимости. Хотя создать его, используя существующие функции в качестве шаблона, очень просто.

1 голос
/ 14 мая 2010

Я не пробовал это на 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, чтобы отладчик мог все это поднять.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...