【发布时间】:2013-03-31 17:14:03
【问题描述】:
我正在尝试编译一个有 -ll 标志但 gcc 找不到的程序。 -l 之后的 l 是什么,真的是一个图书馆,还是这是一个错字?在 google 上很难找到这方面的信息。这样的术语是“模糊的”。
【问题讨论】:
标签: linux gcc compiler-flags
我正在尝试编译一个有 -ll 标志但 gcc 找不到的程序。 -l 之后的 l 是什么,真的是一个图书馆,还是这是一个错字?在 google 上很难找到这方面的信息。这样的术语是“模糊的”。
【问题讨论】:
标签: linux gcc compiler-flags
-ll 表示链接到Solaris's libl lex library(在/usr/lib/libl.so 中可用)。
(-l 选项采用库的名称,减去 lib 前缀和文件扩展名。)
【讨论】:
lex,而是(很可能)flex。 flex 有一个库——libfl.a 或libfl.so 或类似的——你可以使用-lfl 与它链接。但是,它提供了一个虚拟yywrap() 和一个虚拟main(),因此您通常不需要它。 lex库提供的还不止这些,比如支持yyreject,所以很有必要。
就我而言,flex 默认情况下没有安装 libfl 库(使用 Linux Mint)
所以我不得不单独安装libfl-dev库
sudo apt install libfl-dev
并在命令行中包含-lfl 选项而不是-ll,如
gcc myfile.c -lfl -o myfile
【讨论】: