Я пытаюсь скомпилировать программу, у которой есть -ll
флаг, но gcc не может найти. Что значит l
после -l
действительно библиотека или это опечатка? Трудно найти информацию об этом в Google. Такой термин "расплывчатый".
Что такое флаг -ll gcc?
Ответы (2)
-ll
означает ссылку на библиотеку libl lex Solaris (доступна в /usr/lib/libl.so
) .
(Параметр -l
принимает имя библиотеки за вычетом префикса lib
и расширения файла.)
person
Frédéric Hamidi
schedule
31.03.2013
Большое спасибо. Я могу скомпилировать без этого флага в Linux. Могут ли у меня проблемы с финальным исполняемым файлом?
- person Jack; 31.03.2013
Если вы работаете в Linux, вы используете не AT&T
lex
, а (скорее всего) flex
. Существует библиотека для flex
- libfl.a
или libfl.so
или аналогичных - и вы можете связать ее с помощью -lfl
. Однако в нем есть пустышка yywrap()
и пустышка main()
, поэтому обычно она вам не нужна. Библиотека lex
обеспечивает больше, например поддержку yyreject
, поэтому это необходимо.
- person Jonathan Leffler; 31.03.2013
Как и в моем случае, flex
по умолчанию не устанавливал libfl
библиотеку (с использованием Linux Mint)
Поэтому мне пришлось установить libfl-dev
библиотеку отдельно
sudo apt install libfl-dev
и включите параметр -lfl
вместо -ll
в командную строку, как в
gcc myfile.c -lfl -o myfile
person
faruk13
schedule
17.03.2019