最近我在使用 Dev-C++ 5.11 时,其编译器总是出现 ld returned 1 exit status 的错误,例如这段代码(P1328 的一段 80 分代码),我每次成功编译运行一次程序后,再编译,编译器就会报错:
#include<iostream>
using namespace std;
bool a[][5]={{0,0,1,1,0},{1,0,0,1,0},{0,1,0,0,1},{0,0,1,0,1},{1,1,0,0,0}};
int main(){
ios_base::sync_with_stdio(0);
short n,x,y;
cin>>n>>x>>y;
short p[x],q[y];
for(char i=0;i<x;i++)cin>>p[i];
for(char i=0;i<y;i++)cin>>q[i];
char j=0,k=0;
while(n--){
char s=p[n%x],t=q[n%y];
if(s-t)if(a[s][t])j++;
else k++;
}
cout<<j+0<<' '<<k+0;
}
我先将这段代码编译运行一次,成功运行了,也通过了样例 #1,我很高兴。可就在我准备测试样例 #2 时,编译器就出现了刚才所说的报错:
![[Error]ld returned 1 exit status](https://cdn.luogu.com.cn/upload/image_hosting/o5m70ua2.png)
遇到此问题后,我查了百度,发现产生此错误的原因可能是程序仍在运行,或是没有 main() 函数。可这段代码中很明显是有主函数的,我每次用 Dev-C++ 运行完一遍程序也会用
或
将程序关闭,任务管理器中也没有看到运行的本程序,怎么就还报错呢?我尝试了 4 个 .cpp 文件,情况都是如此,且其它代码也可能会出现此情况。
大家谁明白此问题的产生原因?这是因为 Dev-C++ 5.11 本身的问题,还是我的程序有误?