LINUX.ORG.RU

QtCreator как IDE для разработки модулей ядра.


0

1

Доброго времени всем.

Суть: Я хочу использовать QtCreator как текстовый редактор с подсветкой синтаксиса и автодополнением для разработки модулей ядра Linux.

Мне нужно, чтобы QtCreator делал поиск заголовков всегда только в конкретном, указанном мною месте, например, в: /usr/src/linux-3.1.7-1-ARCH/include

Я пытался *.pro жестко захардкодить путь к заголовкам:

INCLUDEPATH = /usr/src/linux-3.1.7-1-ARCH/include

Но это не работает. QtCreator все равно сначала по умолчанию ищет заголовки в /usr/include.

Также в свойствах проекта пробовал переключаться на

«Чистая системная среда»

в которой осталось только:

LD_LIBRARY_PATH=/usr/lib PATH=/usr/bin:/usr/bin QTDIR=/usr/share/qt

Но ничего не получается.

Что в этой ситуации можно сделать? Что посоветуете?

★★

QtCreator все равно сначала по умолчанию ищет заголовки в /usr/include.

Левые заголовки находит модуль автодополнения или компилятор тоже?

static_lab ★★★★★
()

Используй fxr.watson.org и не парь свою голову всякими поделками вроде кутекритора.

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

Используй fxr.watson.org и не парь свою голову всякими поделками вроде кутекритора.

QtCreator как-то ближе к телу :)

kuzulis ★★
() автор топика

QtCreator

*.pro

для разработки модулей ядра.

/0

Возьми Eclipse и настрой ее по любому туториалу из интернетов.

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

Возьми Eclipse и настрой ее по любому туториалу из интернетов.

Нет уж, спасибо. Я не спрашивал про другие IDE. Я задал конкретный вопрос.

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

Знаю, что компилятору во время сборки можно дать команду на отключение поиска заголовков в стандартных (по умолчанию) директориях, можно задать иные пути, по которым он будет в первую очередь искать...

Но вот с QtCreator нестыковочка - т.к. тут по-ходу модуль автокомплита рулит.

Хотя, на забугорном форуме мне говорили, что сам QtCreator спрашивает компилятор об путях к заголовкам. Но как и где он это делает - ХЗ.

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

чтобы во время автокомплита было время сходить чайку попить?

Перестань принимать спиды, или на чем ты там сидишь. Или купи хотя бы Атом, они дешевые.

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

Перестань принимать спиды, или на чем ты там сидишь. Или купи хотя бы Атом, они дешевые.

Хорош троллить/флудить. Если по теме/делу нечего сказать - лучше промолчать. Про еклипс мы тебя поняли.

kuzulis ★★
() автор топика

В транке запилили поддержку autotools проектов, а вообще я думаю нужно просто написать плагин для makefile ориентированных проектов, чтобы креатор жрал их дефайны и пути. Это будет самым идеологически верным решением.

И еще как запилят до вменяемого состояния clang, то на креаторе вполне можно будет на Си кодить без проблем. Да даже и GTK софт разрабатывать))

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

В транке запилили поддержку autotools проектов, а вообще я думаю нужно просто написать плагин для makefile ориентированных проектов, чтобы креатор жрал их дефайны и пути. Это будет самым идеологически верным решением.

Да, в принципе я тоже так думаю. Но при разработке модулей ядра используется некий «диалект» GCC с разными плюшками и т.п. т.е. плагин будет специфичным немного.

Но а кто нить видел где-нить, может уже существуют для креатора подобнве плагины (ала makefile) ?

Т.к. при «стандартном» (на текущий момент в версии 2,4) режиме импорта из autotools и т.п. проектов - оно все-равно ищет не там где нужно.

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

Парни, а мож замутим/запилим плагин для разработки дров из под QtCreator с не только подсветкой синтаксиса, но и со сборкой этих самых дров? А?

И для винды и для linux и т.п. ведь ни там и ни там нет вменяемой IDE для этих целей!

А так - была бы ляпота: и на Qt пишешь - и дрова компилишь, и все в одном проекте.

У меня, кстати, именно такая ситуация сейчас - типо и то и то нужно :). Хочется чтобы оно было всё в одном.

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

А зачем тебе кластер?

На среднестатистическом компе он безбожно тормозит, особенно на таких объемах кода.

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

> А зачем тебе кластер?

как тебе сказать… есть две сущности: первая — жаба, вторая — память. первая вторую любит, но вот вторая первую в своих покоях часто видеть не желает. более-менее разрулить эту сложную ситуацию поможет полигамия ;)

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

На среднестатистическом компе он безбожно тормозит, особенно на таких объемах кода.

Когда вернешься из прошлого, ПОСТАВЬ МАШИНУ ВРЕМЕНИ НА МЕСТО ЕПТ. Или хотя бы научись запускать Eclipse на нормальной JVM.

P.S. пишу драйверы (и не только) именно в Eclipse уже лет 7, ни одна машина не мощнее среднестатистической

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

первая — жаба, вторая — память. первая вторую любит, но вот вторая первую в своих покоях часто видеть не желает

Ах, она не желает? Насилие решит проблему.

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

пишу драйверы (и не только) именно в Eclipse уже лет 7, ни одна машина не мощнее среднестатистической

Все остальные, у кого Eclipse тормозит, это придумывают.

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

Все остальные, у кого Eclipse тормозит, это придумывают.

Ха. Никогда не объясняй так приземленно то, что можно объяснить теорией заговора! Я вот считаю, что против Eclipse существует заговор, который объединил даже вимеров с емаксерами - они в бессильной злобе клевещут на приличную и достаточно быструю IDE.

P.S. большая часть вопросов по Eclipse, на которые я отвечал - это именно «почему она тормозит». Обычно суровые убунтоиды запускали ее на gij.

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

А в Visual Studio не хочешь модули ядра поразрабатывать?

А разве это возможно без лишних ковыряний в солюшенах? О_о

Поддержку сборки драйверов прикрутят(прикрутили) только для Win8 + WDK8 + VS2011. Но оно пока что только на «потестить». Если не ошибаюсь.

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

Если реально соберешься делать - стукнись ко мне в trex6@jabber.ru

Попробую принять посильное участие.

Ок, но нужно еще шарящий народ набрать, т.к. одному мне заниматься этим - недосуг, не потяну всё. :)

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

Хотя, на забугорном форуме мне говорили, что сам QtCreator спрашивает компилятор об путях к заголовкам. Но как и где он это делает - ХЗ.

KDevelop именно запускает компилятор с флагами, переданными системой сборки (в данном случае это makefile) и каким-то флагом, что говорит просто вывести пути и ничего не делать. Думаю, QtCreator делает то же. Но тут главный вопрос в том, чтобы правильно распарсить систему сборки и ничего не продолбать. В этом походу и проблема.

З.Ы. Оффтоп. В KDevelop еще проблема в том, что нету отдельного парсера С. Но в транке специфичные фичи С уже добавляют. Хз про С в QtCreator.

Pavval ★★★★★
()

Я пытался *.pro жестко захардкодить путь к заголовкам:

о_О ты собираешь модули qmake'ом?

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

о_О ты собираешь модули qmake'ом?

Еще один заметил %)

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

о_О ты собираешь модули qmake'ом?

Епт! Где я об этом говорил?

Я хардкодил только лишь для того, чтобы «правильно» производился поиск по заголовкам. Т.е. после добавления путей к INCLUDEPATH , креатор начинает правильно отображать подключенные #include и брать из них описания функций/структур и т.п.

Но это работает только в том случае, если нет инкллуда с таким же именем в /usr/include. Иначе, креатор находит первым тот инклуд что в /usr/include и от этого всЁ летит к #беням.

Тот же самый эффект, если просто импортировать новый проект из

File->New->Other project->Import Existing Project

Еще один заметил %)

Блина, хоть бы первый пост прочли чтоли :)

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

Я хардкодил только лишь для того, чтобы «правильно» производился поиск по заголовкам.

т.е. думал, что если делаю INCLUDEPATH = (вместо +=), то оно мне будет искать только по одному пути, заданному в INCLUDEPATH .

А оно (креатор) вон что творит... :(

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

В QMAKE_CXXFLAGS, например

Пробовал и так и сяк, в разных сочетаниях:

QMAKE_CXXFLAGS = -nostdinc -isysroot QMAKE_CFLAGS = -nostdinc -isysroot

не помогает.

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

Или купи хотя бы Атом, они дешевые.

Вот ты давай, запусти эклипс на атоме N260, с гигом рамы и 1024x600 (да даже 1366x768) экраном, а потом уже кричи «нетормозит!».

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

Вот ты давай, запусти эклипс на атоме N260, с гигом рамы

Давай Атом - запущу. Год моей основной рабочей машиной был Core 2 Solo на 1.4ГГц - работать вполне можно.

и 1024x600 (да даже 1366x768) экраном

Экран был 1280x800. А что, из-за малого разрешения экрана тоже тормозит?

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

Пардон, -isystem=/usr/src/linux-3.1.7-1-ARCH/include

Не, так не работает

Вроде заработало вот так:

QMAKE_CXXFLAGS = -I/usr/src/linux-3.1.8-1-ARCH/include

QMAKE_CFLAGS = -I/usr/src/linux-3.1.8-1-ARCH/include

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

Если реально соберешься делать - стукнись ко мне в trex6@jabber.ru
Попробую принять посильное участие.

Стукать в жаббер как то влом...

Я стартанул проект плагина для поддержки сборки драйверов из под QtCreator:

http://gitorious.org/qt-creator-drivers-builder-project-manager-plugin

Наклепал пока что шаблон визарда. Проект можно собрать и посмареть на то что уже есть.

Всем заинтересованным в развитии и желающим помочь - просьба откликнуться. Т.к. проект только стартанул - по новичкам проще будет в него «въехать».

Милости просим также тех - кто хочет «прокачать» свои скиллы и поднять ЧСВ! :)

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