Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Программирование под Unix/Linux > KDevelop - сборка проекта


Автор: kometa_75 24.1.2008, 11:03
При сборке в KDevelop проект собирается с установленными опциями компилятора. При "ручной сборке" (т.е. ./configure, make) надо устанавливать опции CXXFLAGS, иначе соберётся дефолтная конфигурация. Интересно, что при указании нужных опций для этой же дефолтной конфигурации в IDE - всё собирается как положено, а вот в ручном режиме или через source archive эти опции не учитываются. 
Вопрос: что и как надо настроить в проекте, чтобы configure вызывалась с заданными опциями ?

Автор: powerfox 24.1.2008, 14:24
kometa_75, у KDevelop есть Build options. параметры нужно прописать туда.
Советую посмотреть FAQ по KDevelop.

Автор: kometa_75 24.1.2008, 14:38
Цитата(powerfox @ 24.1.2008,  14:24)
kometa_75, у KDevelop есть Build options. параметры нужно прописать туда.
Советую посмотреть FAQ по KDevelop.

Куда конкретно и что писать ? Перепробовал все возможные варианты. В факе по этому поводу ничего не нашёл. Всё упорно собирается в конфигурации default, причём если собирать в самой IDE -то все опции выполняются нормально, а вот если руками собирать - то опции игнорируются.

Автор: powerfox 24.1.2008, 19:01
Проект->Параметры проекта -> Опции configure + в параметрах проекта есть всё, что может потребоваться.

Автор: kometa_75 25.1.2008, 10:03
Цитата(powerfox @ 24.1.2008,  19:01)
Проект->Параметры проекта -> Опции configure + в параметрах проекта есть всё, что может потребоваться.

Конечно ! Я здесь в первую очередь и пишу... Только когда руками вызываю ./configure, а затем make эти опции почему-то не учитываются. А вот если явно указывать ./configure CXXFLAGS=... всё собирается как-надо.
Может я не всё или не правильно заполняю в Проект->Параметры проекта -> Опции configure ? Почему, собственно, и возник вопрос.
ЗЫ. Мне в другом месте посоветовали пойти через переменные окружения, но как-то этот способ не вдохновляет.

Автор: bsa 26.1.2008, 19:08
kometa_75, если честно, не очень понятно, что ты хочешь.
KDevelop вызывает configure с указанием значений CXXFLAGS и CFLAGS. Если тебе надо свои значения, то это надо редактировать configure.in, добавляя определения переменных CPPFLAGS, CXXFLAGS, CFLAGS и т.п... Только это не очень правильно. Настройки оптимизации логично передавать через configure. Если же тебе нужно подключать библиотеки или указывать пути к каталогам, то это делается в другом месте - в настройках цели и подпроекта соответственно.

Автор: kometa_75 28.1.2008, 10:31
Цитата(bsa @ 26.1.2008,  19:08)
kometa_75, если честно, не очень понятно, что ты хочешь.

Всё что я хочу - это собрать пакет и передать его, скажем, третьей стороне(допустим - пользователю). И чтобы пользователь мог собрать пакет традиционно, через ./configure, make, make install. И очень хочется, чтобы пользователь не ломал голову ключами оптимизации и т.д. Во-всяком случае, большинство сторонних приложений я собирал и устанавливал у себя подобным образом.

Автор: codelord 28.1.2008, 10:42
Цитата(kometa_75 @  28.1.2008,  06:31 Найти цитируемый пост)
Всё что я хочу - это собрать пакет и передать его, скажем, третьей стороне(допустим - пользователю). И чтобы пользователь мог собрать пакет традиционно, через ./configure, make, make install. И очень хочется, чтобы пользователь не ломал голову ключами оптимизации и т.д. Во-всяком случае, большинство сторонних приложений я собирал и устанавливал у себя подобным образом. 

а почему тогда не rpmbuild ?

Автор: kometa_75 28.1.2008, 10:51
Цитата(codelord @ 28.1.2008,  10:42)
а почему тогда не rpmbuild ?

Дык, rpm не во всех же версиях линуха поддерживаются, не говоря уже о фре... Да это в принципе и не проблема. Просто я никогда с этим не сталкивался в KDevelop, а сейчас возникла необходимость.  

Автор: powerfox 28.1.2008, 12:58
Цитата(kometa_75 @  28.1.2008,  11:51 Найти цитируемый пост)
Просто я никогда с этим не сталкивался в KDevelop, а сейчас возникла необходимость.   

Для этого, на сколько я знаю, нужен не IDE.
cmake, scons - рульные штуки. 
autoconf и automake - традиционные утилиты для создания пакетов с исходниками (чтобы просто распаковать и "./configure && make && make install")

Автор: bsa 28.1.2008, 14:22
Цитата(kometa_75 @ 28.1.2008,  10:31)
Всё что я хочу - это собрать пакет и передать его, скажем, третьей стороне(допустим - пользователю). И чтобы пользователь мог собрать пакет традиционно, через ./configure, make, make install. И очень хочется, чтобы пользователь не ломал голову ключами оптимизации и т.д. Во-всяком случае, большинство сторонних приложений я собирал и устанавливал у себя подобным образом.

Вообще-то тебе и не надо включать какие-либо ключи оптимизации в конфигуратор. Если надо, пользователь сам их укажет. Если нет - то не укажет. Большинство пакетов (в исходниках), например, и не включают никаких собственных ключей оптимизации.
Если тебе уж очень хочется, то повесь на параметр --enable-debug. Если этого параметра нет, то задавай ключи через CXXFLAGS/CFLAGS. Делается это в configure.in:
Код
AC_ARG_ENABLE([debug],
     AC_HELP_STRING([Disable optimisation]),
     DEBUG_BUILD=$enableval,
     DEBUG_BUILD=no)
if test "x$DEBUG_BUILD" != "xno"; then
     CPPFLAGS="$CPPFLAGS -Wall"
else
     CXXFLAGS="$CXXFLAGS -O2 -g0"
     CFLAGS="$CFLAGS -O2 -g0"
fi


Автор: kometa_75 28.1.2008, 16:52
Спасибо. Этот способ подходит. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)