工程化系列汇编代码中无法链接的外部符号的几个原因分析

Posted 飞翔的鲲

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了工程化系列汇编代码中无法链接的外部符号的几个原因分析相关的知识,希望对你有一定的参考价值。

Date:2022.11.16


文章目录

前言

在汇编编译和链接时,有时会遇到无法链接的外部符号这样的bug。这里给出几个可能的原因。

1、无法链接的外部符号

示例:
error LNK2019: 无法解析的外部符号 xxxxx,该符号在函数xxx中被引用。

2、主要原因

2.1、在另一个文件中没有定义符号

一个最主要的原因是函数有声明但没有定义。

2.2、C++中调用汇编函数的情况

由于C++中的函数存在多态和重载,所以同一个函数具有不同的表示形式。
在C++中调用汇编函数需要加上extern “C” 函数声明; 用于指定汇编函数的链接采用和C语言的方式一样。

2.3、不同系统平台下对函数符号是否加下划线处理

Win32,Mac32

以上是关于工程化系列汇编代码中无法链接的外部符号的几个原因分析的主要内容,如果未能解决你的问题,请参考以下文章

工程化系列汇编代码中无法链接的外部符号的几个原因分析

"error LNK2019: 无法解析的外部符号"原因分析

LNK2001: 无法解析的外部符号的几种情况

VC中使用openGL链接显示 无法解析的外部符号

VC中使用openGL链接显示 无法解析的外部符号

“error LNK2019: 无法解析的外部符号”之分析