在我们写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
1
0
8
.
情况六:自定义函数中的变量未赋值,并且调用时直接对此变量进行操作。
#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