Вопрос к разработчикам на Qt4
Небольшая предыстория.
По долгу службы автор данной темы связан с разработкой на Qt4. Естественно, ОС — Gentoo. Так вот, после недавней пересборки qt-core из тестовой ветки (текущая версия 4.6.3) я обнаружил, что не могу отладить свое приложение. Покопавшись в системе, обнаружил, что виной всему переменная QMAKE_CFLAGS_DEBUG, определенная в /usr/share/qt4/mkspecs/common/g++.conf. Раньше она была выставлена в "-g" (ключ компилятору для включения в код отладочной информации). Сейчас же этот ключ отсутствует. По этому поводу я создал запись на багзилле: http://bugs.gentoo.org/show_bug.cgi?id=329533
Исходя из оставленных там комментариев, следует, что, вроде бы, так оно и должно быть. Исходя их этого, учитывая то, что с английским у меня тежеловато, хотелось бы услышать мнение русскоязычных пользователей (и, особенно, разработчиков) Gentoo по этому поводу.
Спасибо.
- Для комментирования войдите или зарегистрируйтесь
CFLGAS - user defined variable
CFLGAS - это переменная, которую пользователь сам определяет. Если вам нужены символы, добавьте -g -ggdb или даже -ggdb3 в CFLAGS, добавьте splitdebug в FEATURES и наслаждайтесь Гигабайтами символов :)
Дело в том, что я, как
Дело в том, что я, как пользователь, хочу оставить за собой право компилировать все, что угодно в своей домашней директории. И, на мой взгляд, если уж qmake стоит в системе, от должен работать согласно своей спецификации. То есть, если я указываю CONFIG+=debug, то я должен получить debug. В данном же случае получается, что Gentoo накладывает ограничения на использование утилиты qmake.
Кроме того, я обоими руками за то. чтоб QMAKE_CFLAGS соответствовала CFLAGS из make.conf. Но почему же QMAKE_CFLAGS_DEBUG должна быть равна CFLAGS? Ведь в этом случае теряется ее смысл? Тогда уж в make.conf нужно вводить переменную CFLAGS_DEBUG...
Насколько я понимаю, проблема
Насколько я понимаю, проблема в том, что твой проект не использует инфраструктуру портаге.
Как ответили в баге, для ебилдов всё ок'
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
Именно. Как раз вопрос в том,
Именно. Как раз вопрос в том, что проект никак не завязан на особенности Gentoo. Более того, над проектом работают программисты, которые вообще к ничего не слышали о Gentoo (Qt4 это позволяет). То есть получается, что мне наадо просто учесть эту специфику...
В принципе, проблему я решил
В принципе, проблему я решил для себя созданием файла
~/.qmake.conf
следующего содержания
UPD
А, нет, погорячился
Как вам уже ответили в баге,
Как вам уже ответили в баге, вам нужно добавить
QMAKE_CXXFLAGS_DEBUG += -g (or -ggdb)
в .pro файл.
http://doc.qt.nokia.com/4.6/qmake-manual.html
Имхо, это костыль. Так как
Имхо, это костыль. Так как это Gentoo-специфично. А QMAKE_CXXFLAGS_DEBUG это внутренняя переменная Qt4. То есть в этом случае файл проекта должен распознавать систему, на которой осуществляется сборка. То есть, допустим, на Windows, или на Linux c icc такой проект не соберется. О какой кроссплатформенности тогда можно говорить?
я бы попробовал рассказать
я бы попробовал рассказать это все в баге и попросить довавить юз, например "vanilla", как мне кажется, как раз для такого случая
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
Я и пытаюсь. ))
Я и пытаюсь. ))
UPD
На счет юза — не уверен, что это выход. Надо разбираться с qt4-build.eclass, и править его для того, чтоб он правильно использовал CFLAGS из make.conf, а не кромсал конфигурационные файлы qmake.
А ведь уважаемый Davide
А ведь уважаемый Davide Pesavento прекрасно понимает, что мои претензии обоснованы
http://bugs.gentoo.org/show_bug.cgi?id=312689
Но прикидывается...
А почему в качестве
А почему в качестве "временного решения" не вернуть туда этот флаг самостоятельно? :)
Авось товаришь-автор-ebuild'a подождет пока шум утихнет и вернет все на место. :)
Так вернул. Работать то надо
Так вернул. Работать то надо как-то. Но порядку тоже охота.
Кстати, данная проблема имеет место быть на всех версиях qt-core, присутствующих в дереве, так как виной всему eclass
Ну вот, меня
Ну вот, меня поддержали.
http://bugs.gentoo.org/show_bug.cgi?id=329533#c20
Баг пофикшен, хотя, по-моему,
Баг пофикшен, хотя, по-моему, "костыльным" методом.