C++疑难杂症 error LNK2001: 无法解析的外部符号

2023-11-01

  1. 问题简述
    error LNK2001: 无法解析的外部符号 “private: static int ETH::m_age” (?m_age@ETH@@0HA)
    这类问题是我们在编译过程很常见,原因我百度的时候发现也分好几种,有可能是没有包含相应的头文件,也有可能是没有包含库文件,不过还有一种原因比较刁钻,一般不轻易看得出来,就是在头文件中某个类里定义了一个静态成员变量,然后未在源文件对这个变量进行显示初始化。我本次遇到的情况就是这样的。

  2. 看码说话
    VirlualMoney.h

#pragma once
#include <iostream>

class ETH
	:public VirlualMoney
{
public:
	ETH(){ std::cout << "I am ETH!" << std::endl; }
	~ETH(){}
	static void SetETHAge(const int age)
	{
		m_age = age;
	}

private:
	static int m_age;	//定义一个静态成员变量
};

main.cpp

#include <iostream>
#include "VirlualMoney.h"

int main(int argc, char* argv[])
{
	ETH ethDemo;
	ethDemo.SetETHAge(20);
	return 0;
}

在这里插入图片描述

此时编译会报错,因为静态成员变量需要显示初始化才能使用,我们需要修改一下main.cpp

#include <iostream>
#include "VirlualMoney.h"

int ETH::m_age = 0;	//静态成员变量需要在源文件中显示初始化,在头文件中显示初始化会报错

int main(int argc, char* argv[])
{
	ETH ethDemo;
	ethDemo.SetETHAge(20);
	return 0;
}

ok,编译通过!

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

C++疑难杂症 error LNK2001: 无法解析的外部符号 的相关文章

  • Unity开发(一)——各种坑集合

    1 unity的vs项目无法打开 2 不安全代码只会在使用 unsafe 编译的情况下出现 3 unity各菜单含义
  • PhotonServer的使用

    https blog csdn net a962035 article details 80713726
  • Qt Qt5NetWork.lib Qthttp的get、post请求都无法响应解决方法(丧心病狂)

    qt项目中 get post请求都无法响应 抓包发现也并没有发出请求 程序也编写通过 什么原因就是找不到 最终发现 在新建Qt Gui application的时候 如果后续要做post和get请求 一定要选上NetWork NetWork
  • 【unity】VS没有代码补全问题

    1 运行Visual Studio Installer 安装插件 2 打开unity项目 进入Package Manager 安装插件 3 打开Preferences窗口 修改External Scripts Editor为你的vs编辑器
  • 警告:隐式声明函数‘xxx’ [-Wimplicit-function-declaration]

    在c编译中 出现此类警告的原因 没有声明原始函数 一般的解决方式 在程序前面增加函数头说明即可 否则是用默认说明 隐式说明 来解释函数调用规则 比如返回值默认是int就是在你不说明时起作用的 以下是摘录的比较好的一篇说明 点击打开链接 1
  • c#基础语法笔记----个人学习笔记

    改变应用图标 1 当 解决方案资源管理器 中有项目选中时 在 项目 菜单上单击 属性 2 选择 应用程序 窗格 3 从 图标 下拉列表中选择图标 ico 文件 实例化 new 类名 例如 user a new user 可写 set ret
  • c++ 获取磁盘总大小

    float WindowsInfo GetDiskTotal 单位 G all Total 0 函数外自定义 all Free 0 DWORD dwSize MAX PATH TCHAR szLogicalDrives MAX PATH 0
  • VS C++ 线程篇之一创建线程

    创建线程 创建线程方法一 HANDLE WINAPI CreateThread LPSECURITY ATTRIBUTES lpThreadAttributes 线程安全属性 SIZE T dwStackSize 线程堆栈大小 LPTHRE
  • 用cmake gui配置VS2022中vs2017工具集

    问题描述 vs2022中安装了vs2017 vs2019等工具集 想用cmake gui配置vs2017编译器进行项目生成 选择 Visual Studio 15 2017会提示找不到 选择Visual Studio 17 2022用的就是
  • Windows环境搭建USRP-B210开发环境

    背景 近期在搞软件无线电 SDR 买了一块USRP B210作为发射机 决定在Windows平台下开发 找遍网络 基本上都是Linux下的开发资料 连官网上都没有什么关于Windows下的开发手册 我还就不信了 MATLAB上能跑 还不能在
  • 手把手教你SQLite在Windows/VS下的安装配置及使用(超详细,不会你怪我)

    目录 一 系统环境 二 下载 三 配置系统环境 四 使用命令win r 输入cmd命令 一 系统环境 我这里用的是 Win10 64Bit VS2015 不同版本相差不大 其版本也可以参考这个安装教程 二 下载 SQLite的官网下载地址
  • 【目的:windows下VS2017/2022配置使用opengl - 初探-创建一个空窗口】

    目的 windows下VS2017 2022配置使用opengl 初探 创建一个空窗口 环境 系统 Win10 环境 VS2017 64bit 步骤 windows下visualstudio下使用opengl 搭建配置环境并测试窗口 1 o
  • 修改Nuget缓存包下载路径

    一 打开NuGet config文件 该文件通常在C Users Username AppData Roaming NuGet下 二 添加设置 添加设置 value值设置为自己想要的路径
  • vs2017编译FFMPEG

    首先要建立至少两级目录 比如F ShiftMediaProject code 然后到code底下clone https github com ShiftMediaProject FFmpeg 代码到F ShiftMediaProject c
  • Visual studio 2015 C# 快速using,快捷键修改

    最近开始学习Unity3D引擎 使用的是c 开发 经常要引用其他程序集 但是每次手动打using感觉很麻烦 VS 有个功能是显示可能的修补程序 快捷键是 ctrl 在实际使用的时候大概这个快捷键被占用了 一直没效果 就尝试着自己改 方法如下
  • 在VS中使用命令行参数

    在VS工具中 若要运行带有命令行参数的程序 有两种方法 方法一 在命令提示符中输入要运行的exe的文件名和要输入的参数 各参数之间用空格隔开 如exe文件为test exe 则输入 test 参数1 参数2 参数n 注意 exe文件应放在C
  • 如何在VS 2017运行别人的C语言代码

    如何在VS 2017运行别人的C语言代码 我们在使用VS 2017的时候 只有C 项目没有C项目 如何运行从网上下载的别人的C语言项目代码呢 经过查找资料后 经过如下具体步骤 便能在VS 2017里运行C程序了 目录 如何在VS 2017运
  • vs2017 15.5.x dll调试不成功问题

    配置 Unity5 5 5f1 vs2017 问题 更新到vs2017 15 5 0之后 项目中用到的dll调试断点进不去了 之后更新到15 5 1 依然进不去 现象 Unity工程下生成的dll文件只有dll pdb没有dll mdb文件
  • VS登录问题 无法刷新账户凭证 (Microsoft Visual Studio)

    1 问题描述 VS登录时 弹出错误 无法刷新此账户的凭证 2 解决办法 打开默认的浏览器 我的电脑上默认浏览器是搜狗 1 打开选项设置 2 打开Internet选项 点击连接 再点击局域网设置 3 勾选自动检测设置 取消其它勾选 4 VS恢
  • VS数据断点的使用

    https blog csdn net chenlycly article details 125626617

随机推荐

  • 将两个有序数组合并为一个新的有序数组(Java实现)

    不可否认的是Java确实C语言方便许多 这种写法比我在C中的那种写法要好 代码如下 public class Test public static void main String args int arr1 1 3 5 7 9 int a
  • linux 删除的文件太多:bash:/usr/bin/rm: Argument list too long

    背景 删除一个文件夹内指定后缀的文件时 遇到错误 提示 bash usr bin rm Argument list too long 很明显是指定后缀的文件太多 导致无法删除 解决方案 通过命令find来进行删除 比如要删除所有的json文
  • 基于python+flask实现视频数据可视化

    使用爬虫对视频弹幕进行爬取并保存为csv文件 导入数据库中 进而实现前后端交互功能 数据集中包含的数据分别为爬取的热门视频的标题 播放量 弹幕量 收藏量 综合得分以及视频的类别等信息 便于后续我们进行数据分析 我们使用数据库中的数据评出综合
  • 任务分配的穷举法、匈牙利法、分支定界法

    1 必做 任务分配问题 设有 4 项任务 B1 B2 B3 B4 派 4 个人 A1 A2 A3 A4 去完成 每个人都可以承担 4 项任务中的任何一项 但所消耗的资金不同 设 Ai 完成 Bj 所需资金为 问如何分配任务 使总费用最少 假
  • 无缝漫游的过程!

    无缝漫游中无线AP的配置与普通无线AP的配置基本相同 只是应当注意以下几个方面的问题 所有无线AP必须使用同一SSID 所有无线AP必须使用同一网段的IP地址 并且处于同一VLAN中 信号相互覆盖的无线AP不能使用相同的频道 由于多个AP信
  • 图形分析之Nsight的使用

    作者 i dovelemon 日期 2017 06 11 来源 CSDN 主题 Nsight OpenGL 引言 最开始的时候 我进行图形编程使用的是DX 所以那时候进行图形分析的时候 基本都是使用PIX 后来转向了OpenGL 分析的时候
  • JVM-17(垃圾回收器)上

    目录 17 1 GC分类与性能指标 17 1 1 JVM的发展 17 1 2评估GC的性能指标 17 2 不同的垃圾回收器概述 17 3 Serial回收器 串行回收 17 4 ParNew回收器 并行回收 17 5 Parallel回收器
  • html超链接打开共享文件夹,教你如何访问共享文件夹

    现在我们往往要讲究 资源共享 就是有好的东西跟大家一起分享 那么到电脑上呢经常有一些文件夹 有的是加密的 有的是共享的 今天呢小编就要给大家讲讲如何访问这些共享文件夹 要想查看共享文件夹其实也是有步骤可言的 首先 要先打开控制面板 有一个W
  • 电脑开机就显示360服务器,我用360给电脑杀毒,一直到开机启动项会停止,显示“扫面服务意外终止,无法继续扫描,这可能是由于程序...

    希望我的回答可以帮助楼主解决问题哦 这个问题很明显是杀毒软件自身的问题 不太知道诺顿这款杀毒软件 是不是在升级过程中发生什么问题造成的 楼主可以尝试换用腾讯电脑管家 这款杀毒软件在病毒以及木马的查杀方面很权威 很成熟 下面是我总结的电脑容易
  • ZGC收集器介绍

    ZGC收集器 XX UseZGC ZGC是一款JDK 11中新加入的具有实验性质的低延迟垃圾收集器 ZGC可以说源自于是Azul System公司开发的C4 Concurrent Continuously Compacting Collec
  • OK6410矩阵键盘驱动问题解决方案

    在嵌入式系统开发中 矩阵键盘是一种常见的输入设备 OK6410是一款广泛使用的ARM开发板 本文将介绍如何在OK6410开发板上实现矩阵键盘的驱动 硬件连接 首先 我们需要将矩阵键盘与OK6410开发板进行连接 矩阵键盘通常由多个行和列组成
  • ResNet到底在解决一个什么问题呢?

    点击上方 小白学视觉 选择加 星标 或 置顶 重磅干货 第一时间送达 来源 知乎 https www zhihu com question 64494691 文仅交流 侵删 ResNet发布于2015年 目前仍有大量CV任务用其作为back
  • C# 代码转化为Java代码

    http www tangiblesoftwaresolutions com Free Editions html Install Instant C converts VB NET code to C Install Instant VB
  • 史上最全midjourney关键词

    最全midjourney关键词 篇幅太长 文章最后有可编辑版本获取链接 增强图片真实感 清晰度 unreal engine 虚幻引擎 ultra realistic 超真实 photography 摄影图片 detailed 细节 4K 4
  • LaTeX 使用笔记——公式篇

    目录 一 行内公式 二 独立公式 一 行内公式 二 独立公式 一 括号 1 当括号的两边分别位于上下两行公式 且可能出现两个括号大小不一致的情况 例如 使用LaTeX代码 begin aligned dot V k v 1 z k v 1
  • 一次性搞清楚unicode、codepoint、代码点、UTF

    最近在处理字符过滤 重新研究了下字符 unicode和代码点的相关知识 首先要说一下编码的基本知识unicode unicode unicode是计算机科学领域里的一项业界标准 包括字符集 编码方案等 计算机采用八比特一个字节 一个字节最大
  • Python 爬虫获取某贴吧所有成员用户名

    最近想用Python爬虫搞搞百度贴吧的操作 所以我得把原来申请的小号找出来用 有一个小号我忘了具体ID 只记得其中几个字母以及某个加入的贴吧 所以今天就用爬虫来获取C语言贴吧的所有成员 计划很简单 爬百度贴吧的会员页面 把结果存到MySQL
  • FreeMarker模板使用方法讲解

    项目需要 刚接触 正在学习 FreeMarker简介 FreeMarker模板文件主要由如下4个部分组成 1 文本 直接输出的部分 2 注释 lt gt 格式部分 不会输出 3 插值 即 或 格式的部分 将使用数据模型中的部分替代输出 4
  • 深度学习之基于CNN实现汉字版手写数字识别(Chinese-Mnist)

    Mnist数据集是深度学习入门的数据集 昨天发现了Chinese Mnist数据集 与Mnist数据集类似 只不过是汉字数字 例如 一 二 三 等 本次实验利用自己搭建的CNN网络实现Chinese版的手写数字识别 1 导入库 import
  • C++疑难杂症 error LNK2001: 无法解析的外部符号

    问题简述 error LNK2001 无法解析的外部符号 private static int ETH m age m age ETH 0HA 这类问题是我们在编译过程很常见 原因我百度的时候发现也分好几种 有可能是没有包含相应的头文件 也