MSVC 链接器参考

您所在的位置:网站首页 studioone选项在哪 MSVC 链接器参考

MSVC 链接器参考

#MSVC 链接器参考 | 来源: 网络整理| 查看: 265

链接 项目 04/03/2023

在 C++ 项目中,在编译器将源代码编译为对象文件 (*.obj) 之后,将执行链接步骤。 链接器 (link.exe) 可将对象文件合并到单个可执行文件中。

链接器选项可以在 Visual Studio 内部或外部进行设置。 在 Visual Studio 中,通过右键单击“解决方案资源管理器”中的项目节点并选择“属性”以显示属性页来访问链接器选项。 在左窗格中选择“链接器”以展开节点并查看所有选项。

链接器命令行语法

在 Visual Studio 外部运行 LINK 时,可以通过一种或多种方式指定输入:

在命令行上

使用命令文件

在环境变量中

LINK 首先处理 LINK 环境变量中指定的选项,然后按照在命令行上和在命令文件中指定的顺序处理选项。 如果某个选项使用不同的自变量重复,则最后一个处理的选项优先级较高。

选项适用于整个生成;任何选项都无法应用于特定输入文件。

若要运行 LINK.EXE,请使用以下命令语法:

LINK arguments

arguments 包含选项和文件名,可以按任意顺序指定。 首先处理选项,然后处理文件。 使用一个或多个空格或制表符分隔自变量。

注意

只能从 Visual Studio 命令提示符提示启动此工具。 不能从系统命令提示符或从文件资源管理器启动此工具。

命令行

在命令行上,选项由选项说明符(短划线 (-) 或正斜杠 (/))及后跟的选项名称构成。 选项名称不能缩写。 一些选项带有一个自变量,在冒号 (:) 之后指定。 选项规范中不允许使用空格或制表符,但 /COMMENT 选项中带引号的字符串除外。 以十进制或 C 语言表示法指定数值自变量。 选项名称及其关键字或文件名自变量不区分大小写,但作为自变量的标识符区分大小写。

若要将文件传递给链接器,请在命令行上的 LINK 命令后指定文件名。 可以使用文件名指定绝对路径或相对路径,并在文件名中使用通配符。 如果省略了句点 (.) 和文件扩展名,LINK 将采用 .obj 来查找文件。 LINK 不使用文件扩展名或缺少文件扩展名来假设文件的内容;它会通过检查文件来确定文件类型,并相应地对其进行处理。

如果成功(没有错误),link.exe 返回零。 否则,链接器返回停止链接的错误号。 例如,如果链接器生成 LNK1104,则链接器返回 1104。 相应地,在发生错误时链接器返回的最小错误号为 1000。 返回值 128 表示操作系统或 .config 文件存在配置问题;加载程序未加载任何 link.exe 或 c2.dll。

LINK 命令文件

可以通过命令文件的形式将命令行自变量传递给 LINK。 若要将命令文件指定到链接器,请使用以下语法:

LINK @commandfile

commandfile 是文本文件的名称。 符号 (@) 和文件名之间不允许使用空格或制表符。 没有默认扩展名;必须指定完整文件名,包括任何扩展名。 不能使用通配符。 可以使用文件名指定绝对路径或相对路径。 LINK 不使用环境变量搜索文件。

在命令文件中,自变量可以用空格或制表符(就像在命令行上一样)以及换行符分隔。

可以在命令文件中指定全部或部分命令行。 可以在 LINK 命令中使用多个命令文件。 LINK 接受命令文件输入,就像在命令行上的该位置指定一样。 不能嵌套命令文件。 除非指定 /NOLOGO 选项,否则 LINK 会回显命令文件的内容。

示例

以下用于生成 DLL 的命令会在单独的命令文件中传递对象文件和库的名称,并使用第三个命令文件来指定 /EXPORTS 选项:

link /dll @objlist.txt @liblist.txt @exports.txt LINK 环境变量

LINK 工具使用以下环境变量:

LINK 和 _LINK_(如已定义)。 LINK 工具预置 LINK 环境变量中定义的选项和自变量并在处理之前将 _LINK_ 环境变量中定义的选项和自变量附加到命令行。

LIB(如已定义)。 当 LINK 工具搜索在命令行上指定的对象、库或其他文件时或通过 /BASE 选项进行搜索时会使用 LIB 路径。 它还可使用 LIB 路径查找在对象上命名的 .pdb 文件。 LIB 变量可以包含一个或多个路径规范,用分号分隔。 一个路径必须指向 Visual C++ 安装的 \lib 子目录。

PATH,如果该工具需要运行 CVTRES 并在与 LINK 自身相同的目录中找不到文件。 (LINK 要求 CVTRES 链接 .res 文件。)PATH 必须指向 Visual C++ 安装的 \bin 子目录。

TMP,用于链接 OMF 或.res 文件时指定目录。

另请参阅

C/C++ 生成参考MSVC 链接器选项模块定义 (.def) 文件对延迟加载 DLL 的链接器支持



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3