ld
是 Linux 中的一个链接器(linker),它用于将一个或多个目标文件(object files)链接成一个可执行文件(executable file)
- 基本用法:
ld [选项] [目标文件] [库文件]
-
常用选项:
-o
或--output
:指定输出的可执行文件名。-v
或--verbose
:显示详细的链接过程信息。-s
或--strip-all
:去除可执行文件中的符号信息,减小文件大小。-static
:静态链接,将所有依赖的库文件嵌入到可执行文件中。-dynamic
:动态链接,不嵌入库文件,而是在运行时动态加载库文件。-l
或--library
:链接指定的库文件,例如-lmysql
链接 MySQL 库。-I
或--include-dir
:指定头文件搜索目录。-L
或--library-dir
:指定库文件搜索目录。
-
示例:
将两个目标文件
file1.o
和file2.o
链接成一个名为my_program
的可执行文件:ld file1.o file2.o -o my_program
静态链接
file1.o
和file2.o
,生成名为my_program
的可执行文件:ld -static file1.o file2.o -o my_program
链接 MySQL 库,生成名为
my_program
的可执行文件:ld file1.o file2.o -o my_program -lmysql
显示详细的链接过程信息:
ld -v file1.o file2.o -o my_program
去除可执行文件中的符号信息:
ld -s file1.o file2.o -o my_program
注意:在使用 ld
命令时,请确保目标文件和库文件的路径正确,以及已经正确编译了目标文件。如果需要链接多个库文件,可以使用 -l
选项逐个指定,或者使用 -Wl,-rpath,library_path
选项将库文件的路径嵌入到可执行文件中。