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
命令时,请确保已经安装了相应的编译器和库。如果遇到链接错误,请检查目标文件和库文件的依赖关系是否正确。