传递给 gcc/g++ 的
-l
(小写“L”)标志是什么意思?我在哪里可以找到有关它的文档或教程?
我试过在
man gcc
和 man ld
中搜索 -l
,但那有数千个匹配项。
-l
标志的示例:
在此:
gcc -Wall -Wextra -Werror -O3 -std=c17 hello_world_extra_basic.c -o bin/a -lm && bin/a
-lm
说要包含数学库(静态 .a 或动态 .so?——我不知道)这样你就可以使用像 sin()
来自 math.h
的函数。
参见:
但我需要比这更详细的信息。专家请深入,有条理,简单。
-l
?那是名称中必须出现的部分吗? “l”的意思是“l'inker”吗?这些标志是转到编译器还是链接器?-lpthread
与-pthread
?我以前都见过,但不明白其中的区别。-l
是否包括链接到静态 .a
库或运行时 .so
库?这些库在您的文件系统中的什么位置?sudo ldconfig -v
的输出有什么关系?-l
标志吗?怎么样?