这周打算当一条咸鱼,跟着菜鸟学习一下C++的一些语法,好为以后学习OpenGL做一下打算
==================================无法识别(解析)的外部命令========================================
我遇到这个问题的时候是在写.h + .cpp的时候,这个问题最大的可能性是你在.h里面声明了一些方法,但是在.cpp里面没有相应的实现,比如
/ .h /
#pragma once
#include <iostream>
class Test
{
public:
void Printf();
void Printf(int i); // 注意 我没有实现这个方法
};
/.cpp//
#include "Test.h"
void Test::Printf()
{
std::cout<<"hello world"<<endl;
}
///main.cpp///
#include "test.h"
int main()
{
Test * test = new Test();
test->Printf("sss");
delete test;
system("pause");
}
这样,运行的时候就会出现像是这样的报错信息,而且没有行号
1>Main.obj : error LNK2001: 无法解析的外部符号 "public: void __cdecl Test::Printf(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (?Printf@Test@@QEAAXV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
1>C:\Users\Administrator\source\repos\C++Test\x64\Release\C++Test.exe : fatal error LNK1120: 1 个无法解析的外部命令
1>已完成生成项目“C++Test.vcxproj”的操作 - 失败。