ld
是 Linux 系统中的链接器,用于将一个或多个目标文件(object files)链接成一个可执行文件
-o
或 --output
:指定输出文件的名称。例如:ld -o output_file source_file1.o source_file2.o
-s
或 --strip-all
:移除所有符号信息,使生成的可执行文件更小。例如:ld -s -o output_file source_file.o
-static
:静态链接,将所有依赖的库文件嵌入到生成的可执行文件中。例如:ld -static -o output_file source_file.o
-shared
:动态链接,生成一个动态链接库文件(共享库),而不是可执行文件。例如:ld -shared -o libshared.so source_file.o
-fPIC
:生成位置无关代码(Position Independent Code),使得生成的共享库可以在任何内存地址运行。通常与 -shared
一起使用。例如:gcc -c -fPIC source_file.c
ld -shared -o libshared.so *.o
-L
或 --library-path
:指定库文件的搜索路径。例如:ld -L/path/to/library -o output_file source_file.o
-l
或 --library
:链接指定的库文件。例如:ld -lmylib -o output_file source_file.o
-Wl,
或 --dynamic-linker
:指定动态链接器的路径。通常不需要设置,因为系统会自动使用合适的动态链接器(如 /lib/ld-linux.so.2
)。例如:ld -Wl,/path/to/dynamic-linker -o output_file source_file.o
-rpath
或 --runpath
:指定程序运行时库文件的搜索路径。例如:ld -rpath=/path/to/library -o output_file source_file.o
这只是 ld
命令的一部分参数,还有其他参数可用于控制链接过程。要查看完整的参数列表,请参阅 ld(1) 手册页。