gcc/g++ 中 `-l` 标志的含义

问题描述 投票:0回答:0

传递给 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
的函数。

参见:

  1. https://en.cppreference.com/w/c/numeric/math
  2. https://stackoverflow.com/a/12165016/4561887

但我需要比这更详细的信息。专家请深入,有条理,简单。

  1. 为什么
    -l
    ?那是名称中必须出现的部分吗? “l”的意思是“l'inker”吗?这些标志是转到编译器还是链接器?
  2. 为什么
    -lpthread
    -pthread
    ?我以前都见过,但不明白其中的区别。
  3. -l
    是否包括链接到静态
    .a
    库或运行时
    .so
    库?这些库在您的文件系统中的什么位置?
  4. 这与我在这里看到的
    sudo ldconfig -v
    的输出有什么关系
  5. 你可以添加自己的
    -l
    标志吗?怎么样?
gcc g++ ld
© www.soinside.com 2019 - 2024. All rights reserved.