链接器选项

LINK.exe 将通用对象文件格式 (COFF) 对象文件和库链接起来,以创建可执行 (.exe) 文件或动态链接库 (DLL)。

下表列出了 LINK.exe 的选项。 有关 LINK 的详细信息,请参阅:

在命令行上,链接器选项不区分大小写;例如, /base/BASE 的含义相同。 有关如何在命令行或 Visual Studio 中指定每个选项的详细信息,请参阅适用于该选项的文档。

可以使用 注释 杂注指定一些链接器选项。

按字母顺序列出的链接器选项

选项 目标
@ 指定响应文件。
/ALIGN 指定每一节的对齐方式。
/ALLOWBIND 指定 DLL 不能绑定。
/ALLOWISOLATION 指定清单查找的行为。
/APPCONTAINER 指定应用是否必须在 appcontainer 进程环境中运行。
/ASSEMBLYDEBUG DebuggableAttribute 添加到托管映像中。
/ASSEMBLYLINKRESOURCE 创建指向托管资源的链接。
/ASSEMBLYMODULE 指定应将 Microsoft 中间语言 (MSIL) 模块导入到程序集中。
/ASSEMBLYRESOURCE 将托管资源文件嵌入程序集。
/BASE 为程序设置基址。
/CETCOMPAT 将二进制文件标记为 CET 影子堆栈兼容。
/CGTHREADS 设置 cl.exe 线程数以在指定链接时代码生成后用于优化和代码生成。
/CLRIMAGETYPE 设置 CLR 映像的类型(IJW、纯或安全)。
/CLRSUPPORTLASTERROR 保留通过 P/Invoke 机制调用的函数的上一个错误代码。
/CLRTHREADATTRIBUTE 指定要应用于 CLR 程序入口点的线程特性。
/CLRUNMANAGEDCODECHECK 指定链接器是否将 SuppressUnmanagedCodeSecurity 特性应用于链接器生成的、从托管代码调用到本机 DLL 中的 PInvoke 存根。
/DEBUG 创建调试信息。
/DEBUGTYPE 指定要包括在调试信息中的数据。
/DEF 将模块定义 (.def) 文件传递到链接器。
/DEFAULTLIB 在解析外部引用时搜索指定的库。
/DELAY 控制 DLL 的延迟加载。
/DELAYLOAD 导致延迟加载指定的 DLL。
/DELAYSIGN 对程序集进行部分签名。
/DEPENDENTLOADFLAG 设置依赖 DLL 加载的默认标志。
/DLL 生成 DLL。
/DRIVER 创建内核模式驱动程序。
/DYNAMICBASE 指定是否在加载时使用地址空间布局随机化 (ASLR) 功能生成变基的可执行映像。
/ENTRY 设置起始地址。
/ERRORREPORT 已弃用。 错误报告由 Windows 错误报告 (WER) 设置控制。
/EXPORT 导出函数。
/FILEALIGN 将输出文件中的部分与指定值的倍数对齐。
/FIXED 创建只能在其首选基址加载的程序。
/FORCE 强制完成链接,即使符号无法解析或已定义多次。
/FUNCTIONPADMIN 创建可进行热修补的映像。
/GENPROFILE、/FASTGENPROFILE 这两个选项均 .pgd 通过链接器指定文件的生成,以支持按配置文件优化 (PGO) 。 /GENPROFILE 和 /FASTGENPROFILE 使用不同的默认参数。
/GUARD 启用控制流防护保护。
/HEAP 设置堆的大小(以字节为单位)。
/HIGHENTROPYVA 指定对高熵 64 位地址空间布局随机化 (ASLR) 的支持。
/IDLOUT 指定 .idl 文件和其他 MIDL 输出文件的名称。
/IGNORE 禁止显示指定链接器警告的输出。
/IGNOREIDL 防止将特性信息处理到文件中 .idl
/IMPLIB 重写默认的导入库名。
/INCLUDE 强制符号引用。
/INCREMENTAL 控制增量链接。
/INFERASANLIBS 使用推断的 sanitizer 库。
/INTEGRITYCHECK 指定模块需要在加载时进行签名检查。
/KEYCONTAINER 指定用来对程序集进行签名的密钥容器。
/KEYFILE 指定用来对程序集进行签名的密钥或密钥对。
/LARGEADDRESSAWARE 通知编译器应用程序支持大于 2 GB 的地址
/LIBPATH 指定要在环境库路径之前搜索的路径。
/LINKREPRO 指定要在其中生成链接重现项目的路径。
/LINKREPROTARGET 仅在生成指定的目标时才生成链接重现。16.1
/LTCG 指定链接时间代码生成。
/MACHINE 指定目标平台。
/MANIFEST 创建并行清单文件,也可以选择将其嵌入二进制文件。
/MANIFESTDEPENDENCY 指定 <dependentAssembly> 清单文件中的部分。
/MANIFESTFILE 更改清单文件的默认名称。
/MANIFESTINPUT 指定链接器要进行处理并嵌入二进制文件的清单输入文件。 可以多次使用此选项以指定多个清单输入文件。
/MANIFESTUAC 指定是否将用户帐户控制 (UAC) 信息嵌入到程序清单中。
/MAP 创建映射文件。
/MAPINFO 包括映射文件中的指定信息。
/MERGE 合并节。
/MIDL 指定 MIDL 命令行选项。
/NATVIS 将调试器可视化工具从 Natvis 文件添加到 (PDB) 的程序数据库。
/NOASSEMBLY 取消创建 .NET Framework 程序集。
/NODEFAULTLIB 在解析外部引用时忽略所有(或指定的)默认库。
/NOENTRY 创建纯资源 DLL。
/NOLOGO 取消显示启动版权标志。
/NXCOMPAT 将可执行文件标记为经验证与 Windows 数据执行保护功能兼容。
/OPT 控制 LINK 优化。
/ORDER 按预先确定的顺序将 COMDAT 放置到映像中。
/OUT 指定输出文件名。
/PDB 创建 PDB 文件。
/PDBALTPATH 使用备用位置来保存 PDB 文件。
/PDBSTRIPPED 创建没有私有符号的 PDB 文件。
/PGD .pgd 为按配置文件优化指定一个文件。
/POGOSAFEMODE 过时 创建线程安全的 PGO 检测生成。
/PROFILE 生成一个可与“性能工具”探查器结合使用的输出文件。
/RELEASE 在标头中设置校验和 .exe
/SAFESEH 指定映像将包含安全异常处理程序表。
/SECTION 重写节的特性。
/SOURCELINK 指定要添加到 PDB 的 SourceLink 文件。
/STACK 设置堆栈的大小(以字节为单位)。
/STUB 将 MS-DOS 存根程序附加到 Win32 程序。
/SUBSYSTEM 告知操作系统如何运行 .exe 文件。
/SWAPRUN 通知操作系统在运行链接器输出之前将其复制到交换文件中。
/TLBID 指定链接器生成的类型库的资源 ID。
/TLBOUT 指定 .tlb 文件和其他 MIDL 输出文件的名称。
/TSAWARE 创建专为在终端服务器下运行而设计的应用程序。
/USEPROFILE 使用按配置文件优化定型数据创建优化的映像。
/VERBOSE 打印链接器进度消息。
/VERSION 分配版本号。
/WHOLEARCHIVE 包括指定静态库中的每个对象文件。
/WINMD 允许生成 Windows 运行时元数据文件。
/WINMDFILE 指定由 /WINMD 链接器选项生成的 Windows 运行时元数据 (winmd) 输出文件的文件名。
/WINMDKEYFILE 指定用来对 Windows 运行时元数据文件进行签名的密钥或密钥对。
/WINMDKEYCONTAINER 指定用来对 Windows 元数据文件进行签名的密钥容器。
/WINMDDELAYSIGN 通过将公钥放置在 winmd 文件中,对 Windows 运行时元数据 (winmd) 文件进行部分签名。
/WX 将链接器警告视为错误。

16.1 从 Visual Studio 2019 版本16.1 开始,此选项可用。

另请参阅

C/C++ 生成参考
MSVC 链接器参考