error: LNK2019与error: LNK1120解决方案,亲测有效

2023-10-28

出现如下问题

在这里插入图片描述

(1)仔细看蓝色圈所示:说是 ReadStep这个函数,vs能读取他所在的 .h 文件,编译的时候却找不到他的实现文件,导致出现LNK2019问题。

原因: 在一个.h 文件中使用extern声明了 ReadStep这个函数(注意:如果你没加extern,那可能是在对应的.cpp文件中,在实现该函数时你未加类的作用域也会报该错误), 如果多个.cpp都引用了这个.h文件,编译器会在这些.cpp去寻找它的实现,如果在某个CPP中这个实现被删除了,或者注释了,或者这个cpp被删除了,那么编译器会找不到报该错,实质上大部分的LNK2019问题都是能找到声明或定义,却找不到实现。

extern std::vector<Topo_Shape*> ReadStep(std::string fileName);

我在被我删除的.cpp文件里找到了该实现,从新把他写在了另一个cpp里,错误解决

std::vector<Topo_Shape*> ReadStep(std::string fileName)
{
	std::ifstream  afile;
	afile.open(fileName.c_str(), std::ios::out | std::ios::in);
	std::ostringstream os;
	os << afile.rdbuf();
	std::string str = os.str();
	auto shapes = Swj_ReadSTEP(str);
	return shapes;
}

上图第二个错误也是蓝色宽宽里的函数未更新所致。在此记录一下错误。

!!!!!!!!!!!!

(2)顺便记录一下LNK2019无法解析外部符号的另一种可能,在一个工程里,你将某个项目运用Cmakelist编写成了动态库,另一个项目链接该动态库链接不上也会出现上述错误,

在这里插入图片描述

比如这里Joint_GeometryBase2d类里面的某个函数提示说连接不上,那可能是你这个类未加这个导出的宏,在Joint_GeometryBase2d前加上*__declspec(dllexport),这里我是用马赛克处的的这个宏代替了__declspec(dllexport)*,把这个类声明为导出接口,编译成动态库之后,再调用该类里函数就可以了,就可以连接上该库。

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

error: LNK2019与error: LNK1120解决方案,亲测有效 的相关文章

随机推荐

  • pytorch下import numpy失败_PyTorch的编译系统

    背景 本文以PyTorch 1 0为基础 PyTorch的编译首先是python风格的编译 使用了python的setuptools编译系统 以最基本的编译安装命令python setup py install 为例 这一编译过程包含了如下
  • 两台linux服务器互相自动备份

    将数据同步到其它服务器这里使用Linux同步文件工具rsync来进行文件的同步 rsync rsync是类unix系统下的数据镜像备份工具 remote sync 一款快速增量备份工具 Remote Sync 远程同步 支持本地复制 或者与
  • 【教3妹学算法-leetcode】数组能形成多少数对

    插 前些天发现了一个巨牛的人工智能学习网站 通俗易懂 风趣幽默 忍不住分享一下给大家 点击跳转到网站 坚持不懈 越努力越幸运 大家一起学习鸭 3妹 这么热的天气还要持续多久啊 快要被热死了 2哥 感觉还要有一阵子 今天刚入伏 3妹 啊 今年
  • 三极管的工作原理详解,图文+案例

    什么是三极管 三极管全称是 晶体三极管 也被称作 晶体管 是一种具有放大功能的半导体器件 通常指本征半导体三极管 即BJT管 典型的三极管由三层半导体材料 有助于连接到外部电路并承载电流的端子组成 施加到晶体管的任何一对端子的电压或电流控制
  • C语言程序设计 例7-5

    例7 5 原题 选择排序法 输入一个正整数n 1
  • C++解释器模式:Interpreter Pattern

    当有语言要解释时 请使用解释器模式为语言创建解释器 解释器模式的核心是解释器类 在解释器模式中一般会定义两种解释器 终结符解释器 Terminal Expression Interpreter 终结符解释器用于解释语言中的基本单位 对应语法
  • [架构之路-210]- 人人都是产品经理 - 互联网产品解决用户需求的分析思路和方法笔记

    目录 前言 一 产品需求分析思路和方法 产品需求 1 产品需求的内涵 什么是产品 什么是需求 需求的产品的关系 案例分析 理解需求的误区 2 需求的分类及层次 规律 拆解用户需求 需求分类 需求层次 马斯洛需求层次理论 需求层次的规律 拆解
  • K-means聚类之一(多维整型数据)

    算法介绍 k means 算法接受输入量 k 然后将n个数据对象划分为 k个聚类以便使得所获得的聚类满足 同一聚类中的对象相似度较高 而不同聚类中的对象相似度较小 聚类相似度是利用各聚类中对象的均值所获得一个 中心对象 引力中心 来进行计算
  • javascript对象概念大全

    http www css88 com archives 512 本文介绍了几乎所有关于对象的基本概念 什么是对象 如何创建对象 对象的属性的设置和读取 删除属性的方法 构造函数 对象原型 父类 子类 继承等等 1 对象 对象是一种复合数据类
  • Python爬虫小程序

    import base64 import string import time from selenium import webdriver from selenium webdriver chrome service import Ser
  • 【Docker技术入门与实践(第2版)】Docker入门_学习笔记

    第一章 1 Docker入门须知 1 1 Docker基本知识 Docker是基于Go语言实现的开源容器项目 诞生于2013年年初 最初发 起者是dotCloud公司 Docker自开源后受到广泛的关注和讨论 目前已有多个相关项目 包括Do
  • OpenCV中GPU模块(CUDA)函数

    The OpenCV GPU module is a set of classes and functions to utilize GPU computational capabilities It is implemented usin
  • java读取excel中的数据(包括.xlsx和.xls)

    java读取excel中的数据 包括 xlsx和 xls java读取excel文件中的数据常用jxl和poi两种方式 其中最主要的区别在于jxl不支持 xlsx 而poi支持 小编平时用的比较多的是poi的方式 所以今天小编介绍的也是po
  • 时间戳的基本概念

    1 什么是时间戳 时间戳是指格林威治时间自1970年1月1日 00 00 00 GMT 至当前时间的总秒数 它也被称为Unix时间戳 Unix Timestamp 通俗的讲 时间戳是一份能够表示一份数据在一个特定时间点已经存在的完整的可验证
  • 业内同行盆友来稿:对libc.so下毒手引发的惨痛血案,围观大型翻车现场...

    写在开篇 为了在线上安装环境依赖 给glibc库升级 由于线上环境libc so版本低 不支持安装 所以手贱把动态库中的libc so 6给移走了 直接导致Linux系统崩溃 系统瘫痪 所有用户均被强制退出 意识到缺少对libc so的认识
  • SpringBoot MybatisPlus 动态数据源

    实现功能 通过访问同一个接口携带不同参数查询不同的数据库 动态进行数据源切换 1 创建一个数据源对象 管理数据源和过期时间 Data NoArgsConstructor AllArgsConstructor public class Dat
  • zibgee协议

    1 概述 1 1解析ZigBee堆栈架构 ZigBee堆栈是在IEEE 802 15 4标准基础上建立的 定义了协议的MAC和PHY层 ZigBee设备应该包括IEEE802 15 4 该标准定义了RF射频以及与相邻设备之间的通信 的PHY
  • 什么是Ricardian Contract李嘉图合约?

    Ricardian Contracts是数字文档 用于定义两方或多方之间交互的条款和条件 在20世纪90年代 伊恩 格里格 Ian Grigg 在寻找创造数字化现金的愿景的朋友之后学会了资产的数字化 Ian Grigg发现债券数字化的必要性
  • EL900音色编辑之‘包络(Envelope)简单释义’

    包络其实是一个听的见却并不好具象的去理解的声 音物理特征 我们往往会通过反应速度 音头 延音等 等词汇来形容 但是系统的通过ADSR来描绘可能会更 加的清晰 声音的传播活动是一个动态的过程 一种 乐器的音色之所以悦耳 丰满 是由于它的波 形
  • error: LNK2019与error: LNK1120解决方案,亲测有效

    出现如下问题 1 仔细看蓝色圈所示 说是 ReadStep这个函数 vs能读取他所在的 h 文件 编译的时候却找不到他的实现文件 导致出现LNK2019问题 原因 在一个 h 文件中使用extern声明了 ReadStep这个函数 注意 如