LINUX.ORG.RU

qtcreator + pure c

 ,


0

2

Хочется использовать qt creator просто как IDE для разработки на чистом Си консольного приложения. Какие настройки для этого нужно сделать?
Импортировал проект, написал Makefile. Собирать-запускать удается вполне успешно. А как дебажить?
При нажатии соответствующей кнопки вылазит окошко с нехорошей надписью

Это не похоже на отладочную сборку.
Установка точек останова по имени файла и строке может не работать.
Секция .debug_info: Не найдена.
Секция .debug_abbrev: Не найдена.
Секция .debug_line: Не найдена.
Секция .debug_str: Не найдена.
Секция .debug_loc: Не найдена.
Секция .debug_range: Не найдена.
Секция .gdb_index: Не найдена.
Секция .note.gnu.build-id: Найдена.
Секция .gnu.hash: Найдена.
Секция .gnu_debuglink: Не найдена.
Что и куда нужно прописать для отладки?

★★★

Последнее исправление: cetjs2 (всего исправлений: 1)

Присоединяюсь к вопросу. Ещё нужна IDE с поддержкой tcc или может я просто неосилятор.

IIIypuk ★★★★
()

Я использую эту IDE для разработки консольных аппликух в. т. ч и на чистом ANSI C.

Какой системой сборки пользуетесь? Голым make что ли?

Я предпочитаю использовать QMake, в Qt Creator с его помощью можно переключаться между различными типами сборок (release/debug) кликом мышки.

Вот так.

Лог вызова компилятора при Release:

05:28:05: Running steps for project plain...
05:28:06: Starting: "/opt/QtSDKs/Qt5.3.1/5.3/gcc_64/bin/qmake" /home/exl/Projects/plain/plain.pro -r -spec linux-g++
05:28:06: The process "/opt/QtSDKs/Qt5.3.1/5.3/gcc_64/bin/qmake" exited normally.
05:28:06: Starting: "/usr/bin/make" 
gcc -c -pipe -O2 -Wall -W -fPIE  -I/opt/QtSDKs/Qt5.3.1/5.3/gcc_64/mkspecs/linux-g++ -I../../plain -I. -o main.o ../../plain/main.c
g++ -Wl,-O1 -Wl,-rpath,/opt/QtSDKs/Qt5.3.1/5.3/gcc_64 -o plain main.o    
05:28:07: The process "/usr/bin/make" exited normally.
05:28:07: Elapsed time: 00:01.

Лог вызова компилятора при Debug:

05:28:48: Running steps for project plain...
05:28:48: Starting: "/opt/QtSDKs/Qt5.3.1/5.3/gcc_64/bin/qmake" /home/exl/Projects/plain/plain.pro -r -spec linux-g++ CONFIG+=debug
05:28:48: The process "/opt/QtSDKs/Qt5.3.1/5.3/gcc_64/bin/qmake" exited normally.
05:28:48: Starting: "/usr/bin/make" 
gcc -c -pipe -g -Wall -W -fPIE  -I/opt/QtSDKs/Qt5.3.1/5.3/gcc_64/mkspecs/linux-g++ -I../../plain -I. -o main.o ../../plain/main.c
g++ -Wl,-rpath,/opt/QtSDKs/Qt5.3.1/5.3/gcc_64 -o plain main.o    
05:28:48: The process "/usr/bin/make" exited normally.
05:28:48: Elapsed time: 00:00.

Но для использования QMake нужно установить сами библиотеки Qt, так как нужен qmake и mkspecs, а потом определить инструментарий (Kit).

В противном случае будет необходимо каждый раз явно писать флаг отладки "-g" в секцию CFLAGS в Makefile.

EXL ★★★★★
()
Последнее исправление: EXL (всего исправлений: 1)
Ответ на: комментарий от IIIypuk

Ещё нужна IDE с поддержкой tcc или может я просто неосилятор.

Керниган, Пайк «UNIX - универсальная среда программирования».

Так-что ты не просто неосилятор, а двоешник, не осилившый «букварь».

anonymous
()
Ответ на: комментарий от IIIypuk

Тоже самое, что сообщением выше, только проектный файл для сборки с помощью /usr/bin/tcc становится таким, plain.pro:

TEMPLATE = app
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt

QMAKE_CC = /usr/bin/tcc

SOURCES += main.c

Release:

/usr/bin/tcc -c -pipe -O2 -Wall -W -fPIE  -I/opt/QtSDKs/Qt5.3.1/5.3/gcc_64/mkspecs/linux-g++ -I../../plain -I. -o main.o ../../plain/main.c
g++ -Wl,-O1 -Wl,-rpath,/opt/QtSDKs/Qt5.3.1/5.3/gcc_64 -o plain main.o    

Debug:

/usr/bin/tcc -c -pipe -g -Wall -W -fPIE  -I/opt/QtSDKs/Qt5.3.1/5.3/gcc_64/mkspecs/linux-g++ -I../../plain -I. -o main.o ../../plain/main.c
/usr/bin/tcc -Wl,-rpath,/opt/QtSDKs/Qt5.3.1/5.3/gcc_64 -o plain main.o 

Можно добавить ещё QMAKE_LINK = /usr/bin/tcc, чтобы линковалось тоже tcc.

Но кому нужен этот tcc, в 2014 году. Разве что из академического интереса.

EXL ★★★★★
()
Ответ на: комментарий от anonymous

Мы хатим тыкать па кнопачкам короч))) И чтоб мейкфайлосы сами генерировлись)))

Толсто же. Если человек хочет использовать IDE для того чтобы освободится от рутинной и неинтересной работы (ex. написание Makefile) - пусть использует IDE. Тем более в ней уже есть все необходимые фичи вроде фолдинга, вменяемого автодополнения, сниппетов, удобной навигации и прочее. Может он не хочет тратить месяцы, чтобы привести Vim к вменяемому виду. Одно странно, нафига ему tcc?! Ну ладно clang или icc, но сиё мне кажется странным.

EXL ★★★★★
()
Ответ на: комментарий от EXL

Но для использования QMake нужно установить сами библиотеки Qt, так как нужен qmake и mkspecs

И чтобы собрать из сорцов на другой машине из-за этого тоже надо ставить qt + qmake? Для консольного приложения?

gh0stwizard ★★★★★
()
Ответ на: комментарий от gh0stwizard

И чтобы собрать из сорцов на другой машине из-за этого тоже надо ставить qt + qmake? Для консольного приложения?

поэтому для некутевых проектов CMake лучший выбор.

MikeDM ★★★★★
()
Ответ на: комментарий от gh0stwizard

И чтобы собрать из сорцов на другой машине из-за этого тоже надо ставить qt + qmake? Для консольного приложения?

Нет. После установки среды ты по желанию можешь использовать встроенную систему сборки (которая доступна после импортирования проекта), CMake, autotools или qbs (вроде как, пока им не пользовался). Но только QMake, если мне не изменяет память, имеет удобства в виде переключения мышкой режимов Release/Debug.

EXL ★★★★★
()
Ответ на: комментарий от IIIypuk

такому про, как тебе, не нужны сообщения об ошибках?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.