C++:常见错误LNK2019的几种原因

2023-11-07

转自:https://www.cnblogs.com/thisway/p/5497200.html

error LNK2019问题在VC 6.0中是error LNK2001: unresolved external symbol问题,可能错误号改了。

编译时出现类似这样的错误:Dlgcode.obj : error LNK2019: 无法解析的外部符号 _readRegmark,该符号在函数 _AboutDlgProc@16 中被引用。这种错误的本质是链接器无法在已编译的obj、lib或dll文件中找到函数定义。

1、这是百度找到的方法:http://jingyan.baidu.com/article/4d58d54135d7a79dd4e9c0ad.html。就是有头文件(有了函数声明)却没有lib。一般出现于你使用了第三方提供的库,下载了头文件却忘了载库文件,或库文件忘记放到相应的目录下了。

2、你自己写的函数声明的头文件也写了函数定义的cpp文件,却依然出现LNK2019错误。可能原因:忘记将这两个文件加入工程了。一般出现于用Visual Studio和记事本(或UltraEdit)混合开发过程,你用记事本include了相应的头文件,却忘了在Visual Studio的工程中加入它们了。也可能出现于在解决方案的开发过程,在解决方案下的某个工程中加入了它们却忘了在其他工程中加入,我只接触过VC 6和VS 2008,中间好多年没用过新版本VS,到2008时突然发现怎么多了个“解决方案”,“解决方案”下面还可以放好多工程,于是经常在一个工程中写了共享的源代码,却忘了在别的工程中加入它们。这个问题类似于第1个,不同的是这个库是你自己提供的,但没有把它交给VS 2008编译出来。

3、你自己写的函数声明的头文件也写了函数定义的cpp文件也加入工程了而且你很确定函数体肯定是在这个库文件中,却依然出现LNK2019错误。可能原因:C语言和C++语言混编,因为C++支持函数重载所以C++编译器生成的库文件中的函数名会面目全非,例如C编译器会生成 _readRegmark 这个函数名,而C++编译器则生成了"void __cdecl readRegmark(char *)" (?readRegmark@@YAXPAD@Z)这么个函数名。当你的函数是用C语言写的,VS编译器会按C语言规则编译,但链接器却不知道还傻傻的用C++规则的函数名去找结果就找不到了,而你还百般肯定TM的不就在这个库中吗你个睁眼瞎。解决:在C语言的头文件中加入

#ifdef __cplusplus
extern "C" {
#endif

void readRegmark(char *regmark);  //这里写函数声明

#ifdef __cplusplus
}
#endif

给链接器提示这个函数是C语言的,别TM找错了。

4、http://blog.csdn.net/jtop0/article/details/5779782。模板声明和实现要放在同一文件夹中。

5、http://www.programlife.net/error-lnk2019.html。内联函数定义在头文件中。

6、百度的。http://jingyan.baidu.com/article/d621e8da0d7c022864913f40.html。错误的工程类型造成的。

7、函数定义没有放在函数/类声明的名称空间中namespace

8、貌似还有不尽之处。http://www.douban.com/note/65638800/


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++:常见错误LNK2019的几种原因 的相关文章

随机推荐

  • 所向披靡的响应式开发——如何一招制胜?前端工程师必会技能

    之前也接触过响应式开发 大概就是下载一个响应式网站模板 然后替换图片 哈哈 确实没有系统的学习和了解过响应式开发 最近工作还蛮清闲 找出压箱底很久的响应式开发教程 大概一月前看过一些 然后也忘得差不多la 从头开始学习呗 这套课程还是很基础
  • Web3的2048,Sui 8192能否打开全链游戏的大门?

    作者 Peng SUN Foresight News Sui 8192 一局游戏就是一个NFT Sui 8192智能合约基于Move语言编写 构成非常简单 包括游戏 Game Board与排行榜 Leaderboard 三部分 覆盖方块移动
  • [keil]L6200E: Symbol XXX multiply defined .O...错误解决方法

    当编译时提示这样的错误时 是因为框出来的变量被重复定义了 我们要从定义的地方解决 1 首先 我们全局搜索这个变量 ctrl f 搜索这个变量在工程中被定义的位置 2 如果发现有多个文件中都有定义过 例如在a c和b c中都有int a 0
  • 电容降压整流电源电路

    https www dianziaihaozhe com dianyuan 924 电容降压整流电源电路通常用于低成本取得非隔离的小电流电源 输出电压一般为几伏到二三十伏 输出电流为几毫安到几十毫安 大多取决于所使用的稳压二极管 所能提供的
  • 机器学习和数据科学从业者必读的10本免费英文书

    本文编译自https www kdnuggets com 2018 05 10 more free must read books for machine learning and data science html 夏天本该是放松的季节
  • android首页底部tab动画,Android实现主页底部菜单中间tab图案凸起

    效果图 因为原来的代码底部导航栏使用的是 LinearLayout ImageView TextView 组合 所以 在这里用到了一个及其重要的属性 android clipChildren false 放在其父布局使其生效 达到想要的效果
  • Python __str__方法

    str 方法 1 不定义 str 方法 使用 print 函数输出对象实例时 默认打印对象实例的内存地址 2 定义 str 方法 使用 print 函数或将对象转换为字符串时 自动调用此方法 3 返回值必须是字符串 str 是Python中
  • centos7上hive3.1.3安装及配置

    1 安装背景 hive是基于hadoop的数据仓库软件 部署运行在linux系统之上 安装之前必须保证hadoop环境运行正常 hive本身不是分布式软件 它的分布式主要是借助hadoop实现 存储是hdfs 计算是mapreduce 需要
  • openGL之API学习(九十三)OpenGL中EXT,ARB扩展

    由于OpenGL的标准更新不是很频繁 因此 当某种技术应用流行起来时 显卡厂商为了支持该技术 会使用自己的扩展来实现该功能 但是不同厂商如果有不同的实现 那么程序编写将会异常繁琐 因此多个厂商共同协商使用一致的扩展 这就是EXT扩展 如果这
  • 时序预测

    时序预测 MATLAB实现CNN BiLSTM卷积双向长短期记忆神经网络时间序列预测 风电功率预测 目录 时序预测 MATLAB实现CNN BiLSTM卷积双向长短期记忆神经网络时间序列预测 风电功率预测 预测效果 基本介绍 程序设计 参考
  • java基础之符号

    hello 大家好 今天 小白将继续分享 如果我说的有什么不妥之处 恳请大佬们指出来 如果大家觉得我写的不错 就给我点个赞鼓励一下 小白在此谢谢各位了 众所周知 程序都是按照着一定的规则进行编写的 这些规则被称为语法 只有语法正确了 程序才
  • C++_STL_常用的拷贝和替换算法

    copy 把A数组拷贝到另一个B数组中 void main copy vector
  • windows控制台命令合集

    转自 微点阅读 https www weidianyuedu com windows控制台命令 大集合 开始 运行 命令 集锦 winver 检查Windows版本 wmimgmt msc 打开windows管理体系结构 WMI wupdm
  • 定位Flutter内存问题很难么?

    简介 flutter内存泄漏定位 作者 闲鱼技术 三莅 内存水位升高导致的稳定性问题严重影响app用户体验 所以开发者们非常关注Flutter的内存表现 随着Flutter业务越来越多 闲鱼也面临着oom导致的crash率提升的问题 下面我
  • 两个经典回文字符串问题中的巧妙算法

    问题一 最长回文子串 给定一个字符串 s 找到 s 中最长的回文子串 第一眼的想法是暴力法 由于其时间复杂度高达O n 3 当s过长时效率会特别低 方法一 中心扩展算法 其思想就是遍历一遍字符串 其中在每一个点都进行以其为中心而均匀展开 分
  • 内网隧道搭建ksa工具-端对端-无需公网VPS做流量转发

    1 前言 看雪安全接入 KSA 一款傻瓜式的一键接入私有网络的工具 无论您在任何地点 任何时间 使用任何线路 均可利用这一服务接入自己的私有设备 KSA的服务端和客户端集成在一个可执行文件之中 目前支持Windows macOS和Linux
  • LU分解算法(串行、并行)

    一 串行LU分解算法 详细见MIT线性代数 1 LU分解 矩阵分解 LU分解 分解形式 L 下三角矩阵 U 上三角矩阵 目的 提高计算效率 前提 1 矩阵A为方阵 2 矩阵可逆 满秩矩阵 3 消元过程中没有0主元出现 也就是消元过程中不能出
  • sql ntext數據類型字符替換

    ntext數據類型字符替換 2011 08 21 塗聚文 深圳大運會期間 政府貼出 溫馨提示 交通管制 世界之窗周邊不充許到陽台觀看 出入憑居住證不是身份證 create table tt sid INT IDENTITY 1 1 cont
  • 数据库访问-records库

    records是由requests作者开发的一个DB访问库 与requests的宗旨一样 records也力图成为一个非常易用的DB库 它是基于SQLAlchemy库封装的一个上层库 import records db records Da
  • C++:常见错误LNK2019的几种原因

    转自 https www cnblogs com thisway p 5497200 html error LNK2019问题在VC 6 0中是error LNK2001 unresolved external symbol问题 可能错误号