URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 9523
[ Назад ]

Исходное сообщение
"gcc и порядок указания его опций - там есть особенности?"

Отправлено And , 15-Авг-12 16:24 
Вот я пишу в терминале две строки:

gcc microphone.c -lasound -o /tmp/a.out
gcc -lasound -o /tmp/a.out microphone.c

Первая - компилируется успешно, молча.

Вторая строка - сыпет ошибки, код выхода 1 - ошибка.


/tmp/cch9ZW3l.o: In function `main':
microphone.c:(.text+0x14ce): undefined reference to `snd_pcm_open'
... множество аналогичных сообщений
microphone.c:(.text+0x21d6): undefined reference to `snd_pcm_close'
collect2: ld returned 1 exit status

У автора ( http://alumnos.elo.utfsm.cl/~yanez/alsa-sample-programs/ ) в make файле


gcc -lasound -o microphone microphone.c

Смотрю ещё в начало "man gcc" - допускается указание входного файла в конце команды.

Чем объясняется разница в реакциях на команду? В чём дело?


Содержание

Сообщения в этом обсуждении
"gcc и порядок указания его опций - там есть особенности?"
Отправлено LSTemp , 16-Авг-12 08:36 
>[оверквотинг удален]
> ... множество аналогичных сообщений
> microphone.c:(.text+0x21d6): undefined reference to `snd_pcm_close'
> collect2: ld returned 1 exit status
>

> У автора ( http://alumnos.elo.utfsm.cl/~yanez/alsa-sample-programs/ ) в make файле
>
 
> gcc -lasound -o microphone microphone.c
>

> Смотрю ещё в начало "man gcc" - допускается указание входного файла в
> конце команды.

а где оно в начале команды допускается нашли?



"gcc и порядок указания его опций - там есть особенности?"
Отправлено parad , 16-Авг-12 09:11 
гцц этой командой выполняет два действа - компилирует исходник в объектный файл и транслирует его в исполняемый, линкуя с чем указано. второе действо уже зависит от указаной последовательности, - к примеру, линковщик может выбросить библиотеку полностью, если на
этепе линковки с ней ни один символ не резолвиться. отсюда и ошибка.