【C++】error LNK2019: 无法解析的外部符号

2023-10-27

转:C++ error LNK2019: 无法解析的外部符号 错误解决方案


今天在实现类模板特例化的时候遇到一个问题,就是把类模板函数实现放到类的cpp文件中,然后在main函数中使用这个类的时候,就会出现无法解析的外部符号:函数名(xxxx)等错误,那么出现这个错误的原因是什么呢?

原因就是现在的编译里不支持模板函数的申明和实现分开,要像上面那样使用类成员函数,有以下两种方法

1. 在使用这个类的文件中包含#include“xxxx.cpp”

2.在类头文件末尾包含模板实现函数'#include"xxxx.cpp"

这两种方法都可以解决上面的问题。

(若编译通过 链接未通过 应该考虑外部链接的情况 从项目的链接,项目的属性设置考虑 而不是从代码本身的角度考虑)

(如果使用vs的IDE 可以在右键项目-属性-链接器的下面 着重修改常规-附加库目录 输入-附加依赖项)

下面我们来说下error2019会在什么时候出现?

1. 在使用动态库时候,没有包含相应的lib

解决方案:#pragma comment( lib,"xxxx.lib");

2.函数只进行了申明而没有进行定义

解决方案:为申明的函数添加函数实现

3.缺少.obj目标文件

解决方案:从新设置文件编译的路径,然后重新编译

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

【C++】error LNK2019: 无法解析的外部符号 的相关文章

  • 【C++】Lambda表达式

    C 11的一大亮点就是引入了Lambda表达式 利用Lambda表达式 可以方便的定义和创建匿名函数 对于C 这门语言来说来说 Lambda表达式 或 匿名函数 这些概念听起来好像很深奥 但很多高级语言在很早以前就已经提供了Lambda表达
  • 【OpenCV】噪声的添加和过滤

    1 简介 下面简单介绍两种图像噪声 即椒盐噪声和高斯噪声 1 椒盐噪声 椒盐噪声也称脉冲噪声 它是一种随机出现的白点或者黑点 可能是亮的区域有黑色像素或是在暗的区域有白色像素 或是两者皆有 图像模拟添加椒盐噪声是通过 随机获取像素点 并设置
  • c++模板与泛型编程

    函数模板 template
  • C++编程之构造函数

    学习到了C 的构造函数了 之前上的课比较简单加上自己也有一定的编程基础 所以一直都没觉得有什么压力 今天的课感觉有点难了 构造函数的作用 在对象被创建时 使用特定的值构造对象 将对象初始化为一个特定的初始状态 例如 希望在构造一个Clock
  • C++——内存分区

    内存分区模型 内存分区 四大分区 编译后运行前 程序运行后 栈区 堆区 1 new使用 2 释放空间 3 new 数组 内存分区 四大分区 代码区 二进制代码 操作系统管理 全局区 全局变量 静态变量 常量 栈区 编译器自动分配释放 函数的
  • C++的一些概念 面向对象程序的基本特点

    本节主要介绍一些基本概念 有关于面向对象程序的基本特点 Markdown和扩展Markdown简洁的语法 抽象 对某一类对象的共同属性和行为进行概括 形成类 首先注意问题的本质和描述 其次是实现的过程或细节 数据抽象 描述某类对象的属性或状
  • 【C++】随机数rand( ) 和 随机数引擎

    rand 基本 使用随机数时 经常见到的是C标准库提供的函数rand 这个函数会生成一个0到RAND MAX 32767 之间的一个整形数 分布 为了得到一个给定范围内的随机数 通常会对生成的随机数取余 rand n rand n m m
  • 遍历Newtonsoft.Json.Linq.JObject

    JObject 遍历 引用命名空间 using Newtonsoft Json Linq JObject jObject JObject Parse ID 001 Mark Hello Word StringBuilder str new
  • 【C++笔记】《C++编程思想-卷一》笔记

    C 编程思想 笔记 Volume 1 第一章 对象导言 OOP ObjectOriented Programming 面对对象编程 UML Unified Model Language 统一建模语言 堆 stack 和栈 heap 预备知识
  • 【C++笔记】数据结构栈、堆,内存占用中栈区、堆区的区别和理解

    在计算机领域 堆栈是一个不容忽视的概念 我们编写的C语言程序基本上都要用到 但对于很多的初学着来说 堆栈是一个很模糊的概念 堆栈 一种数据结构 一个在程序运行时用于存放的地方 这可能是很多初学者的认识 因为我曾经就是这么想的和汇编语言中的堆
  • C++基础之初始化、输入输出安全问题及常量问题

    一 C 统一初始化 初始化列表 解决方案 例1 int main int a 10 int b 10 int c 10 初始化列表 int arr 10 1 2 4 5 6 int brr 10 1 2 3 4 5 6 int crr 1
  • C语言--八大排序之直接插入排序算法

    排序 把无序的数据变得有序 默认升序 笔试面试排名第一的内容 1 直接 简单 插入排序 例如 扑克牌发牌时 每发一张 将牌有序插入 从当前位置开始 从后往前找比当前数字小的 找到后插入到这个小的数字后面 在找的过程中 如果发现一个比当前数字
  • C# new与malloc

    目录 C new与malloc C new与malloc的区别 C new关键字底层做的操作 C new与malloc new关键字 new关键字在C 中用于实例化对象 并为其分配内存 它是面向对象编程的基本操作之一 使用new关键字可以在
  • 【C++ 并发与多线程】std::thread类-为共享数据加锁 2

    正交 消除无关事务之间的影响 力求高内聚低耦合 死锁的概念略去不说 死锁有可能发生在使用多个互斥量的场景下 也可能存在没有使用互斥量的场景 两个线程都在等待对方释放互斥量 两个线程都调用了对方的join 函数 为了解决两个线程都在等待对方释
  • VS2010配色方案

    找了很久的配色方案 绝对是精挑细选的 现在分享一下地址 http www hanselman com blog VisualStudioProgrammerThemesGallery aspx 个人喜欢的配色方案 Ragnarok 附图 忘
  • C语言用牛顿迭代法和二分法递归求解三元一次方程

    求解方程 2x 3 4x 2 3x 6 0 牛顿迭代法 牛顿迭代法公式 以下图片均来源于百度 牛顿迭代法用递归实现解三元一次方程 include
  • C++ 的四种类型转换

    背景 C语言中强制类型转换可以随意转换我们想要的类型 格式如下 类型 变量名 那么为什么C 还要引入新的4种类型转换呢 1 新的类型转换控制符可以很好的控制类型转换的过程 允许控制各种类型不同的转换 2 C 的类型转换控制服能告诉程序员或读
  • Asp.net_Study学习笔记

    Asp net Study web基本原理 浏览器向服务器发送请求 服务器响应 报错 HTTP Error 403 14 Forbidden Web 服务器被配置为不列出此目录的内容 解决 打开控制面板里的程序 点击启用或关闭Windows
  • C++面试题之继承

    目录 设计一个类型 不能在外部环境中创建该类的对象 设计一个不能被继承的类 设计一个不能被继承的类 但可以在外部环境创建该类型的对象 设计一个能被继承的类 但不能在外部环境创建该类型的对象 限制派生类对象不可以拷贝和赋值如何实现 设计一个类
  • 【C语言】进制输出加上前缀

    对于八进制数字 它没法和十进制 十六进制区分 因为八进制 十进制和十六进制都包含 0 7 这几个数字 对于十进制数字 它没法和十六进制区分 因为十六进制也包含 0 9 这几个数字 如果十进制数字中还不包含 8 和 9 那么也不能和八进制区分

随机推荐

  • java基础知识-基础语法

    一 变量 a 概念 计算机内存中的一块存储空间 是存储数据的基本单元 b 组成 数据类型 变量名 值 注意 java语言是强类型的编程语言 要求数据类型必须和变量中存储的数据的类型保持一致 c 变量的使用方式 i 声明 语法 数据类型 变量
  • 华为OD机试真题- 最小的调整次数【2023Q1】【JAVA、Python、C++】

    题目描述 有一个特异性的双端队列 该队列可以从头部或尾部添加数据 但是只能从头部移出数据 小A依次执行2n个指令往队列中添加数据和移出数据 其中n个指令是添加数据 可能从头部添加 也可能从尾部添加 依次添加1到n n个指令是移出数据 现在要
  • OpenWrt配置(UCI)

    UCI简介 统一配置接口 Unified Configuration Interface UCI 其目的在于集中OpenWrt系统的配置 基本语法介绍 参考 UCI系统 https wiki openwrt org zh cn doc uc
  • MES系统开发手记(一)

    前言 从ERP开发转到MES系统开发又是将近5年时间了 前后做了几个项目的MES系统 终于想为自己的这几年开发做个总结 写一个比较产品化的MES系统 一 建模 1 基础资料 建立以下几个信息中心 车间资源 产品数据 工艺数据 对制造过程中所
  • gcc编译出现 invalid operands to binary -的解决方法

    在做pcap库抓包的程序中 使用了 pcap head gt caplen unsigned int unsigned char data packet 算式 然后就报 invalid operands to binary 检查代码 其中p
  • 一种为不联网(离线)电脑配置深度学习环境的方法

    1 场景描述 目标电脑为A 无法联网 但是硬件好 需要配置深度学习环境 家用电脑为B 可以联网 硬件条件仅满足日常办公 下面以Tensorflow为例 提供一种环境配置的思路 tensorflow也可以是pytorch等深度学习框架 2 思
  • 程序跑飞原因

    程序跑死原因查找 1 意外中断 是否打开了某个中断 但是没有响应和清除中端标志 导致程序一直进入中断 造成死机假象 2 中断变量处理不妥 若定义某些会在中断中修改的全局变量 这时要注意两个问题 首先为了防止编译器优化中断变量 要在这些变量定
  • docker部署zookeeper集群

    编写启动脚本 docker stop zookeeper docker rm zookeeper docker run restart always privileged true p 2181 2181 name zookeeper ne
  • reset --hard 后如何找回

    问 reset hard 后如何找回 答 拢共分两步 一 找到你想要切回的commit id 二 切过去 一 找到你想要切回的commit id 你的git操作在log中都会有记录 git logs refs heads master 如
  • 惠普ns1005w使用说明_惠普 NS1005w 多功能一体机深度评测:15秒智能闪充 + 全功能手机操控...

    在办公场景中 对打印机的要求比较多 如打印快 成本低 印量大 多功能等 而在桌面型多功能一体机中 HP Laser NS MFP 1005系列 智能闪充加粉式多功能一体机更能满足用户的要求 自从HP Laser NS MFP 1005系列智
  • 华为OD机试 -勾股数(Java)

    题目描述 如果三个正整数A B C A B C 则为勾股数 如果ABC之间两两互质 即A与B A与C B与C均互质没有公约数 则称其为勾股数元组 请求出给定 n m 范围内所有的勾股数元组 输入描述 起始范围 1 lt n lt 10000
  • 【已解决】ImportError: torch.utils.ffi is deprecated. Please use cpp extensions instead.

    本文记录了博主遇到问题 ImportError torch utils ffi is deprecated Please use cpp extensions instead 的解决方案 更新于2019 05 30 背景 博主需要安装一个程
  • ESP32: IDF_PYTHON_ENV_PATH: (not set)

    在Linux下编译esp32工程报错 law law hello world idf py build Setting IDF PATH environment variable home law esp32 esp idf The fol
  • libxxx_intermediates/export_includes’, needed by 解决办法

    xxx intermediates export includes needed by 解决办法 报错信息 ninja error out target product ac8257 demo obj SHARED LIBRARIES li
  • 【深度学习】【U-net】医学图像(血管)分割实验记录

    医学图像分割实验记录 U net介绍 数据集 实验记录 实验1 实验2 fail 实验3 fail 实验4 fail 实验5 fail 实验6 fail 本项目仅用于大创实验 使用pytorch编程 参考价值有限 U net介绍 这里先行挖
  • flutter 本项目做IM消息提醒的思路

    message util 监听接收到消息 container page 在最外层监听消息 如果有收到就弹出弹窗IMNoticeDialog 用converScreen封装过的 可以穿透 可以点击 conversationItem 进入 co
  • 基于MATLAB的战术手势识别功能的设计与实现

    一 课题介绍 手势识别技术是人们生活中常见的一类图像处理技术 也是目前比较火热的研究领域之一 手势识别可以用于人们生活中各种场景 比如利用手势进行电视信息交互 只需要通过手势就能实现对电视机的控制 在很多的VR游戏中 利用手势可以完成各种各
  • mptt介绍

    1 MQTT协议是由IBM开发的即时通讯协议 相比来说比较适合物联网场景的通讯协议 MQTT协议采用发布 订阅模式 所有的物联网终端都通过TCP连接到云端 云端通过主题的方式管理各个设备关注的通讯内容 负责将设备与设备之间消息的转发 2 m
  • 关于Java中对象的比较

    Java对象的比较有这三种 第一种equals 方法是对象值的比较 这是Object类提供的方法 第二种 第三种分别是实现Comparable Comparator接口 Object equals Comparable Comparator
  • 【C++】error LNK2019: 无法解析的外部符号

    转 C error LNK2019 无法解析的外部符号 错误解决方案 今天在实现类模板特例化的时候遇到一个问题 就是把类模板函数实现放到类的cpp文件中 然后在main函数中使用这个类的时候 就会出现无法解析的外部符号 函数名 xxxx 等