C/C++:[Error] ld returned 1 exit status 解决方案合集

在我们写C/C++代码时,有时会出现——

[Error] ld returned 1 exit status

这样的报错,但却没有显示报错地址(即在哪一行报错)。所以我根据我的经历将这种报错的几种情况进行了简单的总结。
(使用工具: Dev-C++ \texttt{Dev-C++} Dev-C++||语言: C++14 \texttt{C++14} C++14


总结:

1.程序没有主函数。
2. scanf/printf \text{scanf/printf} scanf/printf 书写错误
3.引用自定义函数时名称书写错误。
4.上一个运行结果未关闭。
5.数组范围过大。
6.自定义函数中的变量未赋值,并且调用时直接对此变量进行操作。


情况一:程序没有主函数

#include<iostream>
using namespace std;
int mian(){
	return 0;
}

你压根没有写主函数/主函数名字写错时出现。


情况二: scanf/printf \text{scanf/printf} scanf/printf 书写错误

#include<iostream>
using namespace std;
int main(){
	prinf("实例");
	return 0;
}

仅出现在代码较多的情况下,否则会直接标出报错位置。


情况三:引用自定义函数时名称书写错误。

#include<iostream>
using namespace std;
void error(){
	cout<<"Error."<<endl;
}
int main(){
	eror();
	return 0;
}

同上,仅出现在代码较多的情况下,否则会直接标出报错位置。


情况四:上一个运行结果未关闭。

略。

即上一次程序运行窗口未关闭就再次运行程序。

没啥好说的,关了就可以。


情况五:数组范围过大。

#include<iostream>
using namespace std;
int array[1145141919810];
int main(){
	return 0;
} 

调小点吧,尽量小于 1 0 8 10^8 108.


情况六:自定义函数中的变量未赋值,并且调用时直接对此变量进行操作。

#include<iostream>
using namespace std;
int error(int n){
	int ans;
	while(n--){
		ans++;
	}
	return ans;
}
int main(){
	int n;
	cin>>n;
	cout<<error(n)<<endl;
	return 0;
}

需要将变量赋初值,例: int ans=0 \text{int ans=0} int ans=0 .


都看到这里了,求一波三连 QwQ \text{QwQ} QwQ

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ld returned 1 exit status 是一个编译器错误,通常在链接阶段出现。它表示链接器(ld)在链接目标文件时遇到了错误,并返回了非零的退出状态码。 这个错误可能有多种原因,常见的包括: 1. 缺少定义:在链接阶段,链接器无法找到某个函数或变量的定义。这可能是因为该函数或变量的定义被遗漏或者没有正确引入相关的库文件。 2. 重复定义:在链接阶段,链接器发现同一个函数或变量被多次定义。可能是因为同一个函数或变量在多个源文件中被定义了,导致冲突。 3. 依赖问题:在链接阶段,链接器无法解析某个函数或变量的依赖关系。这可能是因为相关的库文件没有正确引入或者顺序不正确。 解决 ld returned 1 exit status 错误的方法包括: 1. 检查代码:仔细检查代码,确保所有的函数和变量都有正确的定义和引入。 2. 检查库文件:确保所需的库文件已经正确引入,并且顺序正确。 3. 解决重复定义:如果出现了重复定义的错误,可以考虑使用头文件和源文件分离的方式来避免重复定义。 4. 检查编译选项:检查编译选项是否正确设置,包括链接选项和库文件路径。 5. 查找其他错误信息:ld returned 1 exit status 只是一个概括性的错误信息,可能还有其他详细的错误信息。查找并解决其他错误信息可能有助于解决问题。 希望以上信息对您有帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值