LINUX.ORG.RU

kdevelop не фурычит


0

0

Поставил линух. Пытаюсь чем-нибудь заняться. Запустил kdevelop. Simple Hello world program. Ну и поменял пару строк. Build project:

sin.o(.text+0x20): In function `main':
.../sin.c:5: undefined reference to `sin'


Код такой:

#include <math.h>

int main(int argc, char *argv[])
{
double x=sin(0);
return 0;
}

Так-то у меня вроде с компиляторами и прочим проблем вроде нет - софт собирается. kdevelop неправильно встал? Или там надо вручную что-нить прописать?

anonymous

> Поставил линух. Пытаюсь чем-нибудь заняться.

В фортунки! АДНАЗНАЧНА!!!!!

> .../sin.c:5: undefined reference to `sin'

Ну так не пользуйся всякими пианерскими поделками типа kdevelop, если во всех этих менюшках и пимпочках не можешь найти, где -lm прописать.

kdevelop не нужен. Совсем. Используй emacs + GNU Autotools.

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

Кстати, если все же хочется что-то привычное - последний CDT для Eclipse
очень даже неплох. Я тут поковырялся с ним недавно - очень даже, code
completion довели до ума, и Makefile ручками писать уже необязательно.

Хотя да, ECB все равно рулит =)

int19h ★★★★
()

не подключаешь математическую библиотеку. добавь -lm в строку линковки.

anonymous
()

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

И еще. Где про все эти -l* почитать. А то я пока ни черта не понимаю - откуда я должен узнать, что синус лежит в libm.so и почему для того же printf'а ничего подключать не надо.

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

> Да я для того kdevelop и пользовал, чтоб самому makefile не сочинять
> (в винде этим как-то не приходилось этого делать). А нафига он
> действительно нужен, если он этим не занимается? (я понимаю, там
> может полезностей всяких дофига, но почему элементарного нет?)

Есть там это все. Просто никто из отметившихся к этому моменту в треде
не пользуется KDevelop, поэтому мы не можем сказать тебе, где там надо
прописывать библиотеки.

> И еще. Где про все эти -l* почитать. А то я пока ни черта не понимаю
> - откуда я должен узнать, что синус лежит в libm.so и почему для того
> же printf'а ничего подключать не надо.

  $ man 3 sin

     #include <math.h>

     double sin(double x);
     float sinf(float x);
     long double sinl(long double x);

     Link with -lm.

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

>Просто никто из отметившихся к этому моменту в треде не пользуется KDevelop, поэтому мы не можем сказать тебе, где там надо прописывать библиотеки.

Да почему - сказали уже, где прописывать. Непонятно только, почему это должен делать я, а не kdevelop.

Ну и вопрос про printf в силе. Как это он без всего этого обходится? (точнее, что именно подключается автоматически, а что надо руками - какой принцип?)

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

> Да почему - сказали уже, где прописывать. Непонятно только, почему
> это должен делать я, а не kdevelop.

В kdevelop в настройках проекта где-то есть список внешних библиотек,
которые надо прилинковать. Пропиши libm туда, и оно тебе сделает
Makefile.

> Ну и вопрос про printf в силе. Как это он без всего этого обходится?
> (точнее, что именно подключается автоматически, а что надо руками -
> какой принцип?)

Автоматически подключается libc, и для C++ - libstdc++. Там вся
стандартная библиотека, кроме math.h, который в libm.  Почему оно
сделанно именно так - хз.

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

> Хотя да, ECB все равно рулит =)

Я так и не смог к нему привыкнуть.

Мне показалось более важным располагать окна внутри фрейма удобным для меня образом, чем наслаждаться комплишином и кодбраузингом, годными только для скриншотов, и не способными справиться с реальным проектом.

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

RTFM:
http://docs.kde.org/development/en/kdevelop/kdevelop/

PS: Библиотеки которые ты используешь kdevelop находить сам не должен и не обязан. В нем нет маленького телепата, чтобы прорубить что тебе по голове стукнуло.

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

> Мне показалось более важным располагать окна внутри фрейма удобным
> для меня образом

А что, разве там этого нет?

> чем наслаждаться комплишином и кодбраузингом, годными только для
> скриншотов, и не способными справиться с реальным проектом.

Гм, не тестировал я его на реальных проектах. Пока просто поставил
посмотреть. В чем там конкретно проблемы с этими фичами?

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