Все-таки научился компилировать проекты на Qt и их отлаживать.
Все, что будет дальше, я пишу для себя, чтобы не забыть, поэтому, если вас не интересует компиляция и отладка прог, написанных с использованием библиотеки Qt в IDE CodeBlocks, то можете дальше не читать.
По пунктам, что надо сделать для успешной компиляции и отладки.
Компиляция
1. Установить Qt и CodeBlocks 🙂
2. Скомпилировать вручную Qt. Для этого надо:
— Запустить configure.exe. По умолчанию будет отключена поддержка gif. Чтобы ее включить, надо компилировать с параметром -qt-gif
— Скомпилировать отладочные модули. В папке c:Qt4.1.3src запустить make. После долгой компиляции получим отладочные и релизные модули в lib. Релизные уже есть сразу без компиляции после установки Qt.
3. Прописать переменные окружения
— В PATH добавить C:Qt4.1.3bin и C:Program FilesCodeBlocksbin
— Создать переменную QTDIR = C:Qt4.1.3 4. Перед компиляцией из CodeBlocks не забыть создать проект Qt с помощью qmake. Для этого надо запустить:
How to configure CodeBlocks for Debugging
— qmake -project -o projectname.pro
— qmake
5. Вручную исправить полученный проект .pro, например, добавить модули, удалить из проекта лишние файлы.
6. После изменения проекта не забыть запустить qmake, чтобы тот создал makefile, по которому будет компилировать CodeBlocks.
7. Создать проект в CodeBlocks (если его еще нет), куда поместить все файлы исходника
8. Настроить CodeBlocks.
— В настройках Settings->Compiler->Вкладка Other->Build method установить на «Work with Makefiles»
— В свойстве проекта на вкладке Project поставить галку «This is custom Makefile»
Отладка
Дальше идет описание настройки CodeBlocks. Все настройки находятся в свойствах проекта.
1. Для отладки в Makefile записать «Makefile.debug» вместо «Makefile»
2. На вкладке Targets изменить путь к скомпилированному exe-шнику на тот, который реально получается (папка Debug)
Владимир 17.10.2014 — 20:33
Зачем все это?
Что за сложности и зачем это?
Как бэ IDE берут исходные файлы проекта и генерируют для них мэйкфайл, который передают утилите make. Это все очень просто, но мэйкфайлы бывают разные — ну допустим для отладочной версии один, а для выпуска — другой (с другими версиями библиотек и т.п.).
Так работают почти все IDE, даже VisualStudio (тока оно юзает nmake xD).
Ну а некоторые IDE позволяют указать свой мэйкфайл вместо его генерации. Это вы и делаете.
Дак вот:
1) вы добавите файл в проект через кодеблокс и придется генерировать новый мэйкфайл
2) придется генерировать разные мэйкфайлы для разных видов сборок
3) для генерации мэйкфайла не обязательно компилировать Qt из исходников — инфа 100% (особенно если ты установил Qt в первом пункте)
4) зачем все это? — кодеблокс неудобен при отладке программ Qt по тысяче причин:
4.1) свистопляска с мэйкфайлами по поводу и без повода
Язык Си с нуля — Урок 42 — Отладка. Как дебажить в CodeBlocks
4.2) в нет нет дизайнера (Qt designer)
4.3) при отдалке ты не сможешь нормально просмотреть содержимое стандартных классов Qt (он под это не затачивался)
4.4) я не уверен, что в стандартное окошко отладки выводятся сообщения qDebug()
4.5) .
Валерій Бовсунівський 22.05.2008 — 02:52
Та фигня все это, я разобрался и написал подробный мануал! Все работает — супер. — http://vsu.front.ru
Михаил 29.05.2008 — 22:24
Свои три копейки
Всё(Qt/CB/MinGW) можно удачно и быстро насторить без плагинов и мейк файлов через проекты CB. Собственно это дело вкуса.
Jenyay 30.05.2008 — 10:00
Я это писал давно, тогда приходилось все делать руками. Слышал, что сейчас уже все это стало проще, но сам еще не пробовал.
Михаил 30.05.2008 — 17:54
Сейчас в КуТю добавили генератор файлов проекта для визуал студии. В Кодеблоксе есть конвертер файлов проектов под разные среды разработки. Так что сейчас проблемы как таковой нет.
Источник: jenyay.net
I. Подготовка
1. Проверьте
При первой отладке, чтобы избежать следующих ошибок, необходимо проверить, заполнен ли путь установки блоков кода gdb.exe.
Метод заключается в следующем:
Строка меню Settings-Debugger-GDB / CDB debugger-Executable path: если этот элемент является красным пробелом, вам необходимо найти путь и заполнить его. Обычно в пути установки блоков кода. У меня есть: D: codeblock CodeBlocks MinGW gdb32 bin gdb32.exe.
2. Проект создан
Возьмем C-код «десятичный в двоичный» в качестве примера
// Десятичное в двоичное и отображение #include int main(void) int i; for(i=0;i10;i++) tran(i); > return 0; > void tran( int n ) int result=0,a=1,k,temp; temp = n; while(temp) a = temp%2; result = a * k + result; a = a*10; temp = temp/2; > printf(«%dn», result); >
Во-вторых, ввод в эксплуатацию
1. Установите точку останова отладки.
Если вы не установите точку останова, нажмите «Отладка», программа автоматически закроется после последовательного выполнения. Это не достигает цели отладки: проверьте код, чтобы определить причину и место ошибки кода.
Когда проект большой, отладка должна выполняться поэтапно, что показывает важность отладки. Должна быть как минимум начальная точка останова или начальная точка останова и конечная точка останова. Когда есть только одна начальная точка останова, отладка начинается в начале и заканчивается в конце программы.
Как показано на рисунке, настройка точки останова отлаживаемой программы начинается в строке 5 и заканчивается в строке 9.
Метод: На красной точке на рисунке выше, щелкните левой кнопкой мыши, и вы увидите красную точку на рисунке. Нажмите еще раз, чтобы отменить точку останова, и красная точка исчезнет. То же самое касается других линий.
2.debug
Найдите красный треугольник отладки / продолжения на панели инструментов и нажмите, чтобы войти в отладку. Или вы можете найти его в опции отладки строки меню.
Объяснение нескольких кнопок на панели инструментов :
Запуск до курсора
следующая строка
шаг (нажмите, чтобы войти в подфункцию)
выйти (нажмите, чтобы выйти из отлаживаемой подфункции, а не войти в)
следующая инструкция
шаг в инструкции
Пересечение прекращает отладку
3. После начала отладки лучше всего открыть окно «Наблюдения», чтобы наблюдать за переменными в реальном времени. Строка меню — отладка — отладка окон — часы.
В-третьих, как показано
Источник: russianblogs.com
Как сделать построчную отладку в Code :: Blocks IDE?
Я использую Code :: Blocks IDE, которая является IDE с открытым исходным кодом и предоставляет несколько языков.
Это использует компилятор GCC.
Я хочу сделать построчную отладку программы.
У вас есть что-нибудь об этом?
Решение
Вы можете использовать команду «Step Into» в меню «Debug», которая должна начать отладку и остановиться на первой строке. Затем продолжите с помощью команды «Следующая строка» (также в меню «Отладка»).
Если это не работает должным образом, вы можете установить точку останова (щелкнув в левом «желобе» или «поле») в первой строке вашего приложения, и запустить отладчик из меню «Отладка», а затем используйте команду «Следующая строка» в меню «Отладка».
Сочетания клавиш различаются в зависимости от ваших настроек, но должны быть указаны вместе с командой меню, что упрощает пошаговое выполнение.
Поскольку вы используете gcc для компиляции, вы можете указать -g параметр для включения символов отладки и вызова gdb из командной оболочки с скомпилированным двоичным файлом в качестве аргумента: gdb ,
(Если установлено [n] curses, укажите -tui для более приятного интерфейса: gdb -tui ,
Однажды в GDB, команда start начнется отладка и автоматически остановится на main() , Вы можете перейти через step команда и quit выходить.
Вы всегда можете man gdb …
Другие решения
Оптимизация GCC иногда делает отладку непростой. Чтобы улучшить ваш опыт отладки, убедитесь, что вы выключили оптимизацию или на низком уровне через -O0 или же -O1 .
Кроме того, убедитесь, что у вас есть вся отладочная информация, включенная в двоичный файл: -g3 .
Пожалуйста, выполните следующие действия:
- Сначала нажмите на строку меню отладки: (Отладка-> Окна отладки-> Наблюдения). Теперь ваше окно отладки включено, и окно будет показано в левом углу.
- Добавьте точку останова, просто щелкнув левой кнопкой мыши по тем строкам, которые вы хотите отладить или протестировать.
- Снова нажмите (Debug-> start / continue). Появится окно консоли. Поместите вклад в это. Теперь нажмите кнопку Enter.
- Нажмите (Отладка-> Следующая строка) или нажмите F7 для построчной отладки.
Источник: web-answers.ru