代码:https://pan.huang1111.cn/s/EQBlUb
编译软件(VS,G++均报错)
命令行:[Bash shell] 纯文本查看 复制代码 g++ InitPage.hpp InitPage.cpp calculate.hpp calculate.cpp extern.hpp main.cpp
报错信息:
InitPage.hpp:15:9: warning: #pragma once in main file
15 | #pragma once
| ^~~~
calculate.hpp:15:9: warning: #pragma once in main file
15 | #pragma once
| ^~~~
C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\ASUS\AppData\Local\Temp\ccMdnLH5.o:main.cpp:(.text+0x15): undefined reference to `init()'
C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\ASUS\AppData\Local\Temp\ccMdnLH5.o:main.cpp:(.text+0xb0): undefined reference to `calc(int, char, int)'
collect2.exe: error: ld returned 1 exit status
找不到函数???!!!
[C++] 纯文本查看 复制代码 //extern.hpp
extern void init(); //in InitPage.hpp
extern int calc(int a, char mode, int b); //int calculate.hpp
extern long calc(long a, char mode, long b);
extern double calc(double a, char mode, double b);
[C++] 纯文本查看 复制代码 void InitPage::init() {
system(colorCMD); //set window color
system(titleCMD); //set window title
}
int calculate::calc(int a, char mode, int b) {
switch (mode) {
case '+':
return a + b;
break;
case '-':
return a - b;
break;
case '*':
return a * b;
break;
case '/':
return a / b;
break;
default:
cout << "Calculate mode wrong!" << endl;
return -1;
break;
}
}
long calculate::calc(long a, char mode, long b) {
switch (mode) {
case '+':
return a + b;
break;
case '-':
return a - b;
break;
case '*':
return a * b;
break;
case '/':
return a / b;
break;
default:
cout << "Calculate mode wrong!" << endl;
return -1;
break;
}
}
double calculate::calc(double a, char mode, double b) {
switch (mode) {
case '+':
return a + b;
break;
case '-':
return a - b;
break;
case '*':
return a * b;
break;
case '/':
return a / b;
break;
default:
cout << "Calculate mode wrong!" << endl;
return -1;
break;
}
}
这不都在吗
|