ld
(链接器)是Linux系统中用于将多个目标文件(object files)和库文件(library files)链接成一个可执行文件的工具
-
-o
或--output
:指定输出文件的名称。如果不指定该参数,链接器将使用第一个输入文件名作为输出文件名。 -
-v
或--verbose
:显示详细的链接过程信息。 -
-s
或--strip-all
:移除所有符号信息,生成一个不可执行的二进制文件。 -
-S
或--strip-debug
:仅移除调试信息,保留符号信息。 -
-static
:以静态链接的方式链接库文件,生成的可执行文件将包含所有依赖的库函数。 -
-shared
:以动态链接的方式链接库文件,生成的可执行文件不包含库函数,而是在运行时动态加载库文件。 -
-fPIC
或--shared-lib
:生成位置无关代码(Position Independent Code),适用于动态链接库文件。 -
-fPIE
或--pie
:生成位置无关可执行文件(Position Independent Executable),提高程序的安全性。 -
-O
或--optimize
:优化链接过程,可能提高程序性能。 -
-Wl,
或--dynamic-linker
:指定动态链接器的路径,例如-Wl,/lib/ld-linux.so.2
。 -
-rpath
或--runpath
:指定程序运行时搜索库文件的路径,例如-rpath=/lib
。 -
-L
或--library-path
:指定库文件的搜索路径,例如-L/usr/local/lib
。 -
-l
或--library
:链接指定的库文件,例如-lmysql
链接 MySQL 库。 -
-I
或--include-dir
:指定头文件的搜索路径,例如-I/usr/include/mysql
。 -
-isystem
或--system-include
:指定系统头文件的搜索路径,通常用于指定编译器的标准库头文件路径。 -
-pthread
:链接 POSIX 线程库,支持多线程程序。
这些参数只是 ld
命令的一部分,还有其他选项可用于控制链接过程。在使用 ld
命令时,请参考其手册页(man page)以获取完整的参数列表和详细信息。