LNK200无法解析的外部符号,LNK112无法解析的外部命令

LNK200无法解析的外部符号,LNK112无法解析的外部命令,C++程序设计实践最后出问题了,本来做完了但删了些东西就坏了,实在不想重新做

img

应该是工程文件误删了cpp文件,cpp重新添加进去编译一下就好了。

先把OnEnChangeEdit3相关的代码注释掉,再打开 ClassWizard 重新添加下

你删了什么东西?
如果删了cpp或者.h文件,如果没有备份,你只能重写这部分代码。
如果删的是一些工程生成的文件,就新建一个mfc工程,把代码复制过去然后添加到新工程里,重新编译生成即可。
如果删的是文件中的部分代码,只能重新编写或添加删掉的部分。

LNK200和LNK112是Visual Studio编译器的错误信息,通常是由于链接库文件或对象文件出现问题导致的。这些错误通常与代码中使用的库或文件路径设置有关。下面是一些可能导致这些错误的原因和解决方法:

检查文件路径是否正确。如果你使用了外部库或文件,请确保文件路径正确,并且库文件已经正确链接。你可以在Visual Studio中进行设置,确保库文件的路径设置正确。

确保库文件已经正确链接。如果你使用了外部库,请确保库文件已经正确链接。你可以在Visual Studio中的项目属性中进行设置,选择“链接器”->“常规”,在“附加库目录”中添加库文件所在的目录,并在“附加依赖项”中添加库文件的文件名。

检查代码中是否存在语法错误。如果你的代码中存在语法错误,也可能会导致链接错误。请确保代码中没有任何语法错误,并且所有的头文件、命名空间、变量和函数都已经正确定义。

检查库文件是否适用于你的编译器和操作系统。如果你的库文件是从其他平台或编译器中获取的,可能会导致链接错误。请确保库文件适用于你的编译器和操作系统。

尝试重新构建你的项目。有时候重新构建项目可以解决链接错误。你可以尝试在Visual Studio中选择“生成”->“清理解决方案”,然后再选择“生成”->“生成解决方案”,重新构建你的项目。

  • 你可以看下这个问题的回答https://ask.csdn.net/questions/7633668
  • 你也可以参考下这篇文章:【成长日志】LNK2019,LNK1120 无法解析的外部命令
  • 除此之外, 这篇博客: LNK 2001错误 原因以及解决办法中的 LNK2001错误 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 错误 LNK2001 无法解析的外部符号 “private: static class GameManager * GameManager::gamem” (?gamem@GameManager@@0PAV1@A) bighomework2 .\Main.obj

    需要参考上一个问题:LNK2005错误

    上一个错误的文件如下:

    //GameMap.cpp
    class GameMap {
    private:
    	static GameMap* ga_me;
    	char gamemap[21][21];
    
    	GameMap() { memset(gamemap, 0, sizeof(gamemap)); }
    	~GameMap() { delete ga_me; }
    public:
    	static
    		GameMap* getInstance() {
    		if (ga_me == NULL) {
    			ga_me = new GameMap();
    		}
    		return ga_me;
    	}
    };
    GameMap* GameMap::ga_me = NULL;
    

    在这个文件中,将static成员变量定义在同一个文件中,会出现 LNK2005错误。
    当去掉后,这次 我有遇到了 LNK2001 错误。
    上次我是将最后一句注释掉,能够正常运行。现在不能够。。。

    这次的不报错方案:

    //GameMap.cpp
    class GameMap {
    private:
    	static GameMap* ga_me;
    	char gamemap[21][21];
    
    	GameMap() { memset(gamemap, 0, sizeof(gamemap)); }
    	~GameMap() { delete ga_me; }
    public:
    	static
    		GameMap* getInstance() {
    		if (ga_me == NULL) {
    			ga_me = new GameMap();
    		}
    		return ga_me;
    	}
    };
    

    将全局变量定义到实现的文件中。

    //GameMap.cpp
    #include"GameMap.h"
    GameMap* GameMap::gamem = NULL;
    

    很奇怪的东西,以后在解决吧。
    有大神看到的话,若能告知,非常感谢。