如何修复"未解析的外部符号"公共:void__thiscall canoid::getinput(void)"(?Getinput@Canoid@@QAEXXZ) 在函数 _main C++ 中引用
How do I fix "Unresolved external symbol "public: void__thiscall canoid::getinput(void)" (?Getinput@Canoid@@QAEXXZ) referenced in function _main C++
所以现在我遇到了这个问题:"Unresolved external symbol "public: void__thiscall canoid::getinput(void)" (?Getinput@Canoid@@QAEXXZ) referenced in function _main" in the programming language c++
我需要帮助解决这个问题,我试图寻找如何在线解决此问题,但没有找到任何问题。错误代码为LNK2019
这是编码语言,对不起,代码:(混乱
Canoid.h
#include <iostream>
#include <math.h>
#include <vector>
#include <string>
#include <algorithm>
#include <conio.h>
using namespace std;
string error_output = "";
bool AllowToInit = true;
class Canoid {
public:
// Init(); is used for Used for initlizazing the Canoid, InitDone checks if initiated
void Init();
bool InitDone = false;
// Input- Gets the Input of the Input
string Input;
// stops Init(); Funciton
void Uninitiated();
// Gets ASCIITABLE (127)
void GetAsciiTable();
// Definition of key input;
// A-Z
#define CANOID_A 65;
#define CANOID_B 66;
#define CANOID_C 67;
#define CANOID_D 68;
#define CANOID_E 69;
#define CANOID_F 70;
#define CANOID_G 71;
#define CANOID_H 72;
#define CANOID_I 73;
#define CANOID_J 74;
#define CANOID_K 75;
#define CANOID_L 76;
#define CANOID_M 77;
#define CANOID_N 78;
#define CANOID_O 79;
#define CANOID_P 80;
#define CANOID_Q 81;
#define CANOID_R 82;
#define CANOID_S 83;
#define CANOID_T 84;
#define CANOID_U 85;
#define CANOID_V 86;
#define CANOID_W 87;
#define CANOID_X 88;
#define CANOID_Y 89;
#define CANOID_Z 90;
//END OF A-Z
// Lowercase Alphabets [a-z]
#define CANOID_a 97
#define CANOID_b 98
#define CANOID_c 99
#define CANOID_d 100
#define CANOID_e 101
#define CANOID_f 102
#define CANOID_g 103
#define CANOID_h 104
#define CANOID_i 105
#define CANOID_j 106
#define CANOID_k 107
#define CANOID_l 108
#define CANOID_m 109
#define CANOID_n 110
#define CANOID_o 111
#define CANOID_p 112
#define CANOID_q 113
#define CANOID_r 114
#define CANOID_s 115
#define CANOID_t 116
#define CANOID_u 117
#define CANOID_v 118
#define CANOID_w 119
#define CANOID_x 120
#define CANOID_y 121
#define CANOID_z 122
// End Lowercase Alphabets [a-z]
#define CANOID_ESCAPE 27 // escape key
// End of Definition of CANOID Input
// Key Func
int key();
// Input
void GetInput();
// CANOID_GET_ERROR is used for getting error.
#define CANOID_GET_ERROR error_output;
};
// Functions
void Canoid::Init() {
if (AllowToInit == true) {
InitDone = true;
}
else {
error_output = "AllowToInit has been disabled.";
}
}
void Canoid::Uninitiated() {
exit(-0);
}
void Canoid::GetAsciiTable() {
if (InitDone == true) {
// Get's the ASCII Table.
for (int AsciiTableNo = 0; AsciiTableNo< 127; AsciiTableNo++) {
cout << char(AsciiTableNo);
}
}
else {
error_output = "you have not initiated the program yet.";
}
}
// key values
int Canoid::key() {
if (InitDone == true) {
char key = _getch();
return key;
}
else {
error_output = "you have not initiated the program yet.";
return 0;
}
}
Canoid_UserInput.h
#include "Canoid.h"
Canoid canoid;
void Canoid::GetInput() {
if (canoid.InitDone == true) {
// caps
if (canoid.key() == CANOID_a) {
canoid.Input = canoid.Input + "a";
}
if (canoid.key() == CANOID_b) {
canoid.Input = canoid.Input + "b";
}if (canoid.key() == CANOID_c) {
canoid.Input = canoid.Input + "c";
}if (canoid.key() == CANOID_d) {
canoid.Input = canoid.Input + "d";
}if (canoid.key() == CANOID_e) {
canoid.Input = canoid.Input + "e";
}if (canoid.key() == CANOID_f) {
canoid.Input = canoid.Input + "f";
}if (canoid.key() == CANOID_g) {
canoid.Input = canoid.Input + "g";
}if (canoid.key() == CANOID_h) {
canoid.Input = canoid.Input + "h";
}if (canoid.key() == CANOID_i) {
canoid.Input = canoid.Input + "i";
}if (canoid.key() == CANOID_j) {
canoid.Input = canoid.Input + "j";
}if (canoid.key() == CANOID_k) {
canoid.Input = canoid.Input + "k";
}if (canoid.key() == CANOID_l) {
canoid.Input = canoid.Input + "l";
}if (canoid.key() == CANOID_m) {
canoid.Input = canoid.Input + "m";
}if (canoid.key() == CANOID_n) {
canoid.Input = canoid.Input + "n";
}if (canoid.key() == CANOID_o) {
canoid.Input = canoid.Input + "o";
}if (canoid.key() == CANOID_p) {
canoid.Input = canoid.Input + "p";
}if (canoid.key() == CANOID_q) {
canoid.Input = canoid.Input + "q";
}if (canoid.key() == CANOID_r) {
canoid.Input = canoid.Input + "r";
}if (canoid.key() == CANOID_s) {
canoid.Input = canoid.Input + "s";
}if (canoid.key() == CANOID_t) {
canoid.Input = canoid.Input + "t";
}if (canoid.key() == CANOID_u) {
canoid.Input = canoid.Input + "u";
}if (canoid.key() == CANOID_v) {
canoid.Input = canoid.Input + "v";
}if (canoid.key() == CANOID_w) {
canoid.Input = canoid.Input + "w";
}if (canoid.key() == CANOID_x) {
canoid.Input = canoid.Input + "x";
}if (canoid.key() == CANOID_y) {
canoid.Input = canoid.Input + "y";
}if (canoid.key() == CANOID_z) {
canoid.Input = canoid.Input + "z";
}
}
else {
error_output = "you have not initiated the program yet.";
}
}
资料来源.cpp
#include <iostream>
#include "Canoid.h"
using namespace std;
int value = 0;
int main() {
Canoid canoid;
canoid.Init();
cout << CANOID_GET_ERROR;
//=================================
while (true) {
//if (canoid.key() == CANOID_ESCAPE) {
// value++;
// cout << " Pause " << endl;
// cout << " Press ESC to resume" << endl;
//}
//if (canoid.key() == CANOID_ESCAPE && value == 1) {
// system("cls");
// value = 0;
//}
canoid.GetInput();
cout << canoid.Input;
}
//=================================
}
这是程序的输出
1>------ Build started: Project: Canoid, Configuration: Debug Win32 ------
1>Source.obj : error LNK2019: unresolved external symbol "public: void __thiscall Canoid::GetInput(void)" (?GetInput@Canoid@@QAEXXZ) referenced in function _main
1>C:UsersNAMEsourcereposCanoidDebugCanoid.exe : fatal error LNK1120: 1 unresolved externals
1>Done building project "Canoid.vcxproj" -- FAILED.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
从未包含Canoid_UserInput.h,因此该函数从未编译过,链接器也无法找到该函数。
溶液:
虽然您可以包含Canoid_UserInput.h,但此文件具有 cpp 源文件的外观,因此应以不同的方式命名和处理。将Canoid_UserInput.h的名称更改为Canoid_UserInput.cpp。确保将Canoid_UserInput.cpp添加到要在解决方案资源管理器(通常是最右侧的窗口窗格(中生成的 Visual Studio 文件列表中,然后重新生成。
相关文章:
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- 在c++类上调用void函数
- 为什么野牛仍在使用"int yylex(void)",却找不到"int yylex(YYS
- 在派生函数中指定void*参数
- C++为什么尽管我调用了void函数,它却不起作用
- 如何从void函数输出字符串
- 我应该使用什么来代替void作为变体中的替代类型之一
- 奇怪的结构&GCC&clang(void*返回类型)
- Arduino:for/while/if在void setup()或void loop()之前?——错误:之前需要不合格
- 为什么这个函数将"const char*"转换为"void* const"而不是"const void*"
- 引用一个已擦除类型(void*)的指针
- 将尾部调用void(i32,..)位转换为llvm::函数以获取FnAttribute
- 库函数需要一个 std::function<void(void)>,如何传入类函数?
- 如何将指针从一个void函数传递到另一个C++
- 为什么我在使用void函数时得到错误代码C2276
- void*到驱动程序中的UnicodeString
- 为什么在逗号分隔符上下文中将预增量的结果强制转换为void
- 指针没有更新它在void函数内部指向的值
- 不能将 "void *" 类型的值分配给类型 "TCHAR" 的实体
- 如何修复"未解析的外部符号"公共:void__thiscall canoid::getinput(void)"(?Getinput@Canoid@@QAEXXZ) 在函数 _main C++ 中引用