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)以获取完整的参数列表和详细信息。