查看: 502|回复: 8

[C/C++] 求助!代码哪错了

[复制链接]

0

技术

9

魅力

1

原创

版主

禁止访问

Rank: 7Rank: 7Rank: 7

积分
7734
人气
176
分享
52

最佳新人活跃会员

发表于 2023-2-24 19:29:48 | 显示全部楼层 |阅读模式
代码: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;
	}
}

这不都在吗

小菜鸡一枚~
Gitee主页:https://gitee.com/juruoqwq

0

技术

9

魅力

1

原创

版主

禁止访问

Rank: 7Rank: 7Rank: 7

积分
7734
人气
176
分享
52

最佳新人活跃会员

 楼主| 发表于 2023-2-24 19:31:41 | 显示全部楼层
@YFSafe   
小菜鸡一枚~
Gitee主页:https://gitee.com/juruoqwq

4

技术

17

魅力

6

原创

版主

禁止发言

Rank: 7Rank: 7Rank: 7

积分
5367
人气
208
分享
36

最佳新人活跃会员

发表于 2023-2-25 12:12:10 | 显示全部楼层
报错哪一句就删掉哪一句
YF工作室驻x64论坛分部
工作室曾开发的软件:YFSafe安全软件,YFChat在线聊天软件,MBRTools等。
欢迎有能力的你加入我们一起共同进步。请发邮件至yfstudio2021@outlook.com

0

技术

9

魅力

1

原创

版主

禁止访问

Rank: 7Rank: 7Rank: 7

积分
7734
人气
176
分享
52

最佳新人活跃会员

 楼主| 发表于 2023-2-25 12:32:27 | 显示全部楼层
YFSafe 发表于 2023-2-25 12:12
报错哪一句就删掉哪一句

有点道理
小菜鸡一枚~
Gitee主页:https://gitee.com/juruoqwq

1

技术

7

魅力

2

原创

管理员

Rank: 9Rank: 9Rank: 9

积分
6867
人气
208
分享
49

灌水之王论坛元老优秀版主活跃会员

发表于 2023-2-25 13:07:56 | 显示全部楼层
以下内容机器人生成




根据搜索结果¹,你的第一个警告是因为你在编译一个包含#pragma once的文件。#pragma once只应该用在头文件中,而不需要编译头文件。解决方法是:不要编译头文件。

你的第二个错误是因为链接器找不到init()和calc(int, char, int)这两个函数的实现。可能的原因是你没有把所有的源文件一起链接⁵,或者你有两个不同的main函数⁶,或者你没有把所有的文件名作为命令行参数⁷。

请问你是用什么方式编译程序的?你能提供更多关于init()和calc(int, char, int)函数定义和声明的信息吗?



论坛事务联系邮箱 henry217@x64bbs.cn

0

技术

9

魅力

1

原创

版主

禁止访问

Rank: 7Rank: 7Rank: 7

积分
7734
人气
176
分享
52

最佳新人活跃会员

 楼主| 发表于 2023-2-25 20:43:18 | 显示全部楼层
henry217 发表于 2023-2-25 13:07
以下内容机器人生成

找到问题所在了,谢谢帮助(虽然在你发回复之前就找到了
小菜鸡一枚~
Gitee主页:https://gitee.com/juruoqwq

0

技术

7

魅力

0

原创

版主

Rank: 7Rank: 7Rank: 7

积分
5100
人气
135
分享
5
发表于 2023-2-25 21:18:26 | 显示全部楼层
henry217 发表于 2023-2-25 13:07
以下内容机器人生成

ChatGPT?
Manners maketh man

1

技术

7

魅力

2

原创

管理员

Rank: 9Rank: 9Rank: 9

积分
6867
人气
208
分享
49

灌水之王论坛元老优秀版主活跃会员

发表于 2023-2-26 10:36:55 | 显示全部楼层

新bing(实际就是gpt套壳)
论坛事务联系邮箱 henry217@x64bbs.cn

0

技术

7

魅力

0

原创

版主

Rank: 7Rank: 7Rank: 7

积分
5100
人气
135
分享
5
发表于 2023-2-26 20:18:46 | 显示全部楼层
henry217 发表于 2023-2-26 10:36
新bing(实际就是gpt套壳)

能投资人工智能的恐怕只有微软,特斯拉了吧
Manners maketh man
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表