链接器选项
LINK.exe 将通用对象文件格式 (COFF) 对象文件和库进行链接,以创建可执行文件 (EXE) 或动态链接库 (DLL)。
下表列出了 LINK.exe 的选项。 有关 LINK 的详细信息,请参阅:
在命令行上,链接器选项不区分大小写,例如,/base
和 /BASE
的含义相同。 有关如何在命令行或 Visual Studio 中指定每个选项的详细信息,请参阅适用于该选项的文档。
可使用 comment
杂注指定一些链接器选项。
按字母顺序列出的链接器选项
选项 | 目的 |
---|---|
@ |
指定响应文件。 |
/ALIGN |
指定每一节的对齐方式。 |
/ALLOWBIND |
指定 DLL 不能绑定。 |
/ALLOWISOLATION |
指定清单查找的行为。 |
/APPCONTAINER |
指定应用是否必须在 appcontainer 进程环境中运行。 |
/ARM64XFUNCTIONPADMINX64 |
指定 ARM64X 映像中 x64 函数之间的最小填充字节数。17.8 |
/ASSEMBLYDEBUG |
将 DebuggableAttribute 添加到托管映像中。 |
/ASSEMBLYLINKRESOURCE |
创建指向托管资源的链接。 |
/ASSEMBLYMODULE |
指定应将 Microsoft 中间语言 (MSIL) 模块导入到程序集中。 |
/ASSEMBLYRESOURCE |
将托管资源文件嵌入程序集。 |
/BASE |
为程序设置基址。 |
/CETCOMPAT |
将二进制文件标记为 CET 阴影堆栈兼容。 |
/CGTHREADS |
设置 cl.exe 线程数以在指定链接时代码生成后用于优化和代码生成。 |
/CLRIMAGETYPE |
设置 CLR 映像的类型(IJW、纯或安全)。 |
/CLRSUPPORTLASTERROR |
保留通过 P/Invoke 机制调用的函数的上一个错误代码。 |
/CLRTHREADATTRIBUTE |
指定要应用于 CLR 程序入口点的线程特性。 |
/CLRUNMANAGEDCODECHECK |
指定链接器是否将 SuppressUnmanagedCodeSecurity 特性应用于链接器生成的且从托管代码调用到本机 DLL 中的 P/Invoke 存根。 |
/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 文件中。 |
/ILK |
重写默认的增量数据库文件名。 |
/IMPLIB |
重写默认的导入库名。 |
/INCLUDE |
强制符号引用。 |
/INCREMENTAL |
控制增量链接。 |
/INFERASANLIBS |
使用推断擦除器库。 |
/INTEGRITYCHECK |
指定模块需要在加载时进行签名检查。 |
/KERNEL |
创建内核模式二进制。 |
/KEYCONTAINER |
指定用来对程序集进行签名的密钥容器。 |
/KEYFILE |
指定用来对程序集进行签名的密钥或密钥对。 |
/LARGEADDRESSAWARE |
通知编译器应用程序支持大于 2 GB 的地址 |
/LIBPATH |
指定要在环境库路径之前搜索的路径。 |
/LINKREPRO |
指定要在其中生成链接重现工件的路径。 |
/LINKREPROFULLPATHRSP |
生成包含链接器作为输入的所有文件的绝对路径的响应文件。 |
/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。 |
/NOFUNCTIONPADSECTION |
为指定节中的函数禁用函数填充。17.8 |
/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 |
通知操作系统在运行链接器输出之前将其复制到一个交换文件。 |
/TIME |
输出链接器传递计时信息。 |
/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 起可用。
17.8 此选项自 Visual Studio 2022 版本 17.8 起可用。