ld
是 Linux 系统中的链接器(linker),它用于将一个或多个目标文件(object files)链接成一个可执行文件
- 基本语法:
ld [选项] [目标文件] [链接器脚本] [库文件]
-
常用选项:
-o
或--output
:指定输出的可执行文件名。-v
或--verbose
:显示详细的链接过程信息。-s
或--strip-all
:去除可执行文件中的符号信息,减小文件大小。-static
:静态链接,将所有依赖的库文件嵌入到可执行文件中。-dynamic
:动态链接,不嵌入库文件,而是在运行时加载所需的库文件。-l
或--library
:链接指定的库文件,例如-lmath
链接数学库。-I
或--include-dir
:指定头文件搜索目录。-L
或--library-dir
:指定库文件搜索目录。-Wl,
:传递选项给链接器,例如-Wl,-rpath,libpath
设置运行时库搜索路径。
-
示例:
编译一个名为
main.c
的 C 语言源文件:gcc -o main main.c
将
main.o
链接成一个名为my_program
的可执行文件,并静态链接数学库:ld -o my_program main.o -static -lmath
将
main.o
链接成一个名为my_program
的可执行文件,并动态链接数学库,同时设置运行时库搜索路径:ld -o my_program main.o -dynamic -lmath -Wl,-rpath,/path/to/lib
链接一个名为
example.o
的目标文件和一个名为libexample.a
的静态库文件:ld -o example example.o -lexample
注意:在使用 ld
命令时,请确保已经安装了相应的编译器和库。如果遇到链接错误,请检查目标文件和库文件的依赖关系是否正确。