ALT Linux Community general discussions
 help / color / mirror / Atom feed
* [Comm] gcc
@ 2003-05-15 18:10 Andrey Rybak
  2003-05-15 19:04 ` [Comm] gcc Alexey Tourbin
  0 siblings, 1 reply; 14+ messages in thread
From: Andrey Rybak @ 2003-05-15 18:10 UTC (permalink / raw)
  To: community

На старости лет обнаружил, что не умею пользоваться gcc.
Подскажите, как скомпилировать программу  с вызовами функций sqrt(), 
exp(), sin() и иже с ними без сообщений компиллятора:
/home/andrey/tmp/cctwjuhg.o(.text+0x2c): undefined reference to `sqrt'
/home/andrey/tmp/cctwjuhg.o(.text+0x4c): undefined reference to `pow'
/home/andrey/tmp/cctwjuhg.o(.text+0x7a): undefined reference to `exp'


#include<math.h> есть.
сам файл math.h есть (по тому же пути где и stdio.h), причем подобных 
ошибок для функций printf(), puts() etc. не наблюдается. Мало того, и 
программы с использованием функций, объявленных в stdio.h работают 
корректно. Помогите, пожалуйста. 



^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Comm] Re: gcc
  2003-05-15 18:10 [Comm] gcc Andrey Rybak
@ 2003-05-15 19:04 ` Alexey Tourbin
  2003-05-16  8:24   ` Andrey Rybak
  2003-05-16 22:29   ` Andrey Golovin
  0 siblings, 2 replies; 14+ messages in thread
From: Alexey Tourbin @ 2003-05-15 19:04 UTC (permalink / raw)
  To: community

[-- Attachment #1: Type: text/plain, Size: 794 bytes --]

On Thu, May 15, 2003 at 09:10:07PM +0300, Andrey Rybak wrote:
> На старости лет обнаружил, что не умею пользоваться gcc.
> Подскажите, как скомпилировать программу  с вызовами функций sqrt(), 
> exp(), sin() и иже с ними без сообщений компиллятора:
> /home/andrey/tmp/cctwjuhg.o(.text+0x2c): undefined reference to `sqrt'
> /home/andrey/tmp/cctwjuhg.o(.text+0x4c): undefined reference to `pow'
> /home/andrey/tmp/cctwjuhg.o(.text+0x7a): undefined reference to `exp'

-lm

> #include<math.h> есть.
> сам файл math.h есть (по тому же пути где и stdio.h), причем подобных 
> ошибок для функций printf(), puts() etc. не наблюдается. Мало того, и 
> программы с использованием функций, объявленных в stdio.h работают 
> корректно. Помогите, пожалуйста. 

Потому что -lc влинковывается по умолчанию.

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Comm] Re: gcc
  2003-05-15 19:04 ` [Comm] gcc Alexey Tourbin
@ 2003-05-16  8:24   ` Andrey Rybak
  2003-05-16 13:25     ` Alexey Tourbin
  2003-05-19 11:17     ` Andrey Rybak
  2003-05-16 22:29   ` Andrey Golovin
  1 sibling, 2 replies; 14+ messages in thread
From: Andrey Rybak @ 2003-05-16  8:24 UTC (permalink / raw)
  To: community

Alexey Tourbin wrote:

>On Thu, May 15, 2003 at 09:10:07PM +0300, Andrey Rybak wrote:
>  
>
>>На старости лет обнаружил, что не умею пользоваться gcc.
>>Подскажите, как скомпилировать программу  с вызовами функций sqrt(), 
>>exp(), sin() и иже с ними без сообщений компиллятора:
>>/home/andrey/tmp/cctwjuhg.o(.text+0x2c): undefined reference to `sqrt'
>>/home/andrey/tmp/cctwjuhg.o(.text+0x4c): undefined reference to `pow'
>>/home/andrey/tmp/cctwjuhg.o(.text+0x7a): undefined reference to `exp'
>>    
>>
>
>-lm
>
>  
>
>>#include<math.h> есть.
>>сам файл math.h есть (по тому же пути где и stdio.h), причем подобных 
>>ошибок для функций printf(), puts() etc. не наблюдается. Мало того, и 
>>программы с использованием функций, объявленных в stdio.h работают 
>>корректно. Помогите, пожалуйста. 
>>    
>>
>
>Потому что -lc влинковывается по умолчанию.
>  
>
Спасибо, работает.
Т.к. хидеров много, и, очевидно, подобных затруднений будет много, а в 
мане gcc я этих ключиков не увидел, то подскажите еще, где найти как 
можно более полный справочный материал по gcc.



^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Comm] Re: gcc
  2003-05-16  8:24   ` Andrey Rybak
@ 2003-05-16 13:25     ` Alexey Tourbin
  2003-05-16 13:57       ` Andrey Rybak
  2003-05-19 11:17     ` Andrey Rybak
  1 sibling, 1 reply; 14+ messages in thread
From: Alexey Tourbin @ 2003-05-16 13:25 UTC (permalink / raw)
  To: community

[-- Attachment #1: Type: text/plain, Size: 825 bytes --]

On Fri, May 16, 2003 at 11:24:09AM +0300, Andrey Rybak wrote:
> Т.к. хидеров много, и, очевидно, подобных затруднений будет много, а в 
> мане gcc я этих ключиков не увидел, то подскажите еще, где найти как 

Хедеры -- это только прототипы и макросы, там самого кода нет.  Грубо
говоря, хедеры нужно только для того, чтобы проверить правильность
вашего кода на соответствие с чужим кодом.  Для подключения самого кода
исползуются библиотеки.

Ключики нужно искать в man ld.  Компилятор gcc (как и любой cc) состоит
из нескольких частей: cpp (препроцессор), cc1 (компилятор), as
(ассемблер) и ld (линкер).  К каждой части есть свои флаги.

Нет, есть там такой ключик.
man gcc
/ *-llibrary

> можно более полный справочный материал по gcc.

Не знаю, тут нужно комплексное изучение.
Попробуйте info libc и info gcc (или pinfo).

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Comm] Re: gcc
  2003-05-16 13:25     ` Alexey Tourbin
@ 2003-05-16 13:57       ` Andrey Rybak
  2003-05-16 19:48         ` Alexey Tourbin
  0 siblings, 1 reply; 14+ messages in thread
From: Andrey Rybak @ 2003-05-16 13:57 UTC (permalink / raw)
  To: community

Alexey Tourbin wrote:

>On Fri, May 16, 2003 at 11:24:09AM +0300, Andrey Rybak wrote:
>  
>
>>Т.к. хидеров много, и, очевидно, подобных затруднений будет много, а в 
>>мане gcc я этих ключиков не увидел, то подскажите еще, где найти как 
>>    
>>
>
>Хедеры -- это только прототипы и макросы, там самого кода нет.  Грубо
>говоря, хедеры нужно только для того, чтобы проверить правильность
>вашего кода на соответствие с чужим кодом.  Для подключения самого кода
>исползуются библиотеки.
>
>Ключики нужно искать в man ld.  Компилятор gcc (как и любой cc) состоит
>из нескольких частей: cpp (препроцессор), cc1 (компилятор), as
>(ассемблер) и ld (линкер).  К каждой части есть свои флаги.
>
>Нет, есть там такой ключик.
>man gcc
>/ *-llibrary
>
>  
>
>>можно более полный справочный материал по gcc.
>>    
>>
>
>Не знаю, тут нужно комплексное изучение.
>Попробуйте info libc и info gcc (или pinfo).
>  
>
Что такое хедеры я знаю, а за консультацию искреннее спасибо.



^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Comm] Re: gcc
  2003-05-16 13:57       ` Andrey Rybak
@ 2003-05-16 19:48         ` Alexey Tourbin
  0 siblings, 0 replies; 14+ messages in thread
From: Alexey Tourbin @ 2003-05-16 19:48 UTC (permalink / raw)
  To: community

[-- Attachment #1: Type: text/plain, Size: 364 bytes --]

On Fri, May 16, 2003 at 04:57:16PM +0300, Andrey Rybak wrote:
> Что такое хедеры я знаю, а за консультацию искреннее спасибо.

Хотел ещё добавить, что -lm -- это подключение математической
библиотеки, а не какой-то специальный ключик gcc. :)  -lc -- стандартная
библиотека Си.  Ключик -l%name просто ищет библиотеку lib%name.so или
lib%name.a в /lib или /usr/lib.

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Comm] Re: gcc
  2003-05-15 19:04 ` [Comm] gcc Alexey Tourbin
  2003-05-16  8:24   ` Andrey Rybak
@ 2003-05-16 22:29   ` Andrey Golovin
  2003-05-17  0:32     ` Alexey Tourbin
  2003-05-17 13:39     ` Vitaly Lugovsky
  1 sibling, 2 replies; 14+ messages in thread
From: Andrey Golovin @ 2003-05-16 22:29 UTC (permalink / raw)
  To: community

В Чтв, 15.05.2003, в 23:04, Alexey Tourbin написал:
> On Thu, May 15, 2003 at 09:10:07PM +0300, Andrey Rybak wrote:
> > На старости лет обнаружил, что не умею пользоваться gcc.
> > Подскажите, как скомпилировать программу  с вызовами функций sqrt(), 
> > exp(), sin() и иже с ними без сообщений компиллятора:
> > /home/andrey/tmp/cctwjuhg.o(.text+0x2c): undefined reference to `sqrt'
> > /home/andrey/tmp/cctwjuhg.o(.text+0x4c): undefined reference to `pow'
> > /home/andrey/tmp/cctwjuhg.o(.text+0x7a): undefined reference to `exp'
> 
> -lm
Или -ffast-math (Если не ошибаюсь...)
-- 
Andrey Golovin <aigolovin@hotbox.ru>

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Comm] Re: gcc
  2003-05-16 22:29   ` Andrey Golovin
@ 2003-05-17  0:32     ` Alexey Tourbin
  2003-05-17 11:51       ` Andrey Golovin
  2003-05-17 13:39     ` Vitaly Lugovsky
  1 sibling, 1 reply; 14+ messages in thread
From: Alexey Tourbin @ 2003-05-17  0:32 UTC (permalink / raw)
  To: community

[-- Attachment #1: Type: text/plain, Size: 154 bytes --]

On Sat, May 17, 2003 at 02:29:54AM +0400, Andrey Golovin wrote:
> > -lm
> Или -ffast-math (Если не ошибаюсь...)

Ошибаетесь.  Это опция оптимизации кода.

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Comm] Re: gcc
  2003-05-17  0:32     ` Alexey Tourbin
@ 2003-05-17 11:51       ` Andrey Golovin
  2003-05-17 13:45         ` Vitaly Lugovsky
  2003-05-17 13:50         ` Alexey Tourbin
  0 siblings, 2 replies; 14+ messages in thread
From: Andrey Golovin @ 2003-05-17 11:51 UTC (permalink / raw)
  To: community

В Сбт, 17.05.2003, в 04:32, Alexey Tourbin написал:
> On Sat, May 17, 2003 at 02:29:54AM +0400, Andrey Golovin wrote:
> > > -lm
> > Или -ffast-math (Если не ошибаюсь...)
> 
> Ошибаетесь.  Это опция оптимизации кода.
А Вы попробуйте :) ГЦЦ 2.х чудненько создает программу с этой опцией без
-lm так как встраивает всю математику непосредственно в программу и
никакие библиотеки ей не нужны. С ГЦЦ 3 не пробовал.
-- 
Andrey Golovin <aigolovin@hotbox.ru>

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Comm] Re: gcc
  2003-05-16 22:29   ` Andrey Golovin
  2003-05-17  0:32     ` Alexey Tourbin
@ 2003-05-17 13:39     ` Vitaly Lugovsky
  1 sibling, 0 replies; 14+ messages in thread
From: Vitaly Lugovsky @ 2003-05-17 13:39 UTC (permalink / raw)
  To: community

On Sat, 17 May 2003, Andrey Golovin wrote:

> > -lm
> Или -ffast-math (Если не ошибаюсь...)

 Это только некоторые кривенькие инлайны вставит. Не стоит ВООБЩЕ
этой фичёй gcc пользоваться. Никогда.



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Comm] Re: gcc
  2003-05-17 11:51       ` Andrey Golovin
@ 2003-05-17 13:45         ` Vitaly Lugovsky
  2003-05-17 13:50         ` Alexey Tourbin
  1 sibling, 0 replies; 14+ messages in thread
From: Vitaly Lugovsky @ 2003-05-17 13:45 UTC (permalink / raw)
  To: community

On Sat, 17 May 2003, Andrey Golovin wrote:

> > > Или -ffast-math (Если не ошибаюсь...)
> >
> > Ошибаетесь.  Это опция оптимизации кода.
> А Вы попробуйте :) ГЦЦ 2.х чудненько создает программу с этой
> опцией без
> -lm так как встраивает всю математику непосредственно в
> программу и
> никакие библиотеки ей не нужны. С ГЦЦ 3 не пробовал.

  То, что он встраивает - не математика, а грязные хаки. Скорость
ценой значительной потери точности. Давить такой подход.





^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Comm] Re: gcc
  2003-05-17 11:51       ` Andrey Golovin
  2003-05-17 13:45         ` Vitaly Lugovsky
@ 2003-05-17 13:50         ` Alexey Tourbin
  1 sibling, 0 replies; 14+ messages in thread
From: Alexey Tourbin @ 2003-05-17 13:50 UTC (permalink / raw)
  To: community

[-- Attachment #1: Type: text/plain, Size: 484 bytes --]

On Sat, May 17, 2003 at 03:51:44PM +0400, Andrey Golovin wrote:
> А Вы попробуйте :) ГЦЦ 2.х чудненько создает программу с этой опцией без
> -lm так как встраивает всю математику непосредственно в программу и
> никакие библиотеки ей не нужны. С ГЦЦ 3 не пробовал.

$ cat mtest.c
main(){cos(1);}
$ gcc-2.96 mtest.c -ffast-math
cc3uIFRO.o: In function `main':
cc3uIFRO.o(.text+0x11): undefined reference to `cos'
collect2: ld returned 1 exit status
$ gcc-2.96 mtest.c -ffast-math -lm
$

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Comm] Re: gcc
  2003-05-16  8:24   ` Andrey Rybak
  2003-05-16 13:25     ` Alexey Tourbin
@ 2003-05-19 11:17     ` Andrey Rybak
  2003-05-19 12:08       ` Alexey Tourbin
  1 sibling, 1 reply; 14+ messages in thread
From: Andrey Rybak @ 2003-05-19 11:17 UTC (permalink / raw)
  To: community

>
>
>> On Thu, May 15, 2003 at 09:10:07PM +0300, Andrey Rybak wrote:
>>  
>>
>>> На старости лет обнаружил, что не умею пользоваться gcc.
>>> Подскажите, как скомпилировать программу  с вызовами функций sqrt(), 
>>> exp(), sin() и иже с ними без сообщений компиллятора:
>>> /home/andrey/tmp/cctwjuhg.o(.text+0x2c): undefined reference to `sqrt'
>>> /home/andrey/tmp/cctwjuhg.o(.text+0x4c): undefined reference to `pow'
>>> /home/andrey/tmp/cctwjuhg.o(.text+0x7a): undefined reference to `exp'
>>>   
>>
>>
>> -lm
>>
> А как заставить такой вот ключик работать для консольного типа 
> аппликух в KDevelop?  (Аналогичные ошибки компиляции)






^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Comm] Re: gcc
  2003-05-19 11:17     ` Andrey Rybak
@ 2003-05-19 12:08       ` Alexey Tourbin
  0 siblings, 0 replies; 14+ messages in thread
From: Alexey Tourbin @ 2003-05-19 12:08 UTC (permalink / raw)
  To: community

[-- Attachment #1: Type: text/plain, Size: 234 bytes --]

On Mon, May 19, 2003 at 02:17:50PM +0300, Andrey Rybak wrote:
> >А как заставить такой вот ключик работать для консольного типа 
> >аппликух в KDevelop?  (Аналогичные ошибки компиляции)

Разбирайтесь, где там подключаются библиотеки.

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2003-05-19 12:08 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-05-15 18:10 [Comm] gcc Andrey Rybak
2003-05-15 19:04 ` [Comm] gcc Alexey Tourbin
2003-05-16  8:24   ` Andrey Rybak
2003-05-16 13:25     ` Alexey Tourbin
2003-05-16 13:57       ` Andrey Rybak
2003-05-16 19:48         ` Alexey Tourbin
2003-05-19 11:17     ` Andrey Rybak
2003-05-19 12:08       ` Alexey Tourbin
2003-05-16 22:29   ` Andrey Golovin
2003-05-17  0:32     ` Alexey Tourbin
2003-05-17 11:51       ` Andrey Golovin
2003-05-17 13:45         ` Vitaly Lugovsky
2003-05-17 13:50         ` Alexey Tourbin
2003-05-17 13:39     ` Vitaly Lugovsky

ALT Linux Community general discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/community/0 community/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 community community/ http://lore.altlinux.org/community \
		mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com
	public-inbox-index community

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.community


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git