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
选项将库文件的路径嵌入到可执行文件中。