4

Dev C++编写C/C++程序 出现[Error] ld returned 1 exit status报错分析及解决 - 杏花...

 1 year ago
source link: https://www.cnblogs.com/sparse-shadow/p/16361370.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Dev C++编写C/C++程序 出现[Error] ld returned 1 exit status报错分析及解决

debug系列第一弹,不知道大家写程序的时候是不是都遇到过如题的报错。

我本人是经常遇到这行熟悉的令人不知所措的报错,可能是我太笨了

有时候百度无果也差不到原因,那就汇总一下目前我遇到的情况吧——持续更新

出现后这个报错信息,大体一看找不到问题,第一类建议:

1.可以把重启Dev C++

2.新建一个源代码将代码复制粘贴再运行试试

(虽然听起来很离谱,但是我真的出现过,记得很清楚就是,在这个文件怎么改都这个报错,新建一个copy过去就正常运行)

3.文件名改成英文,不要使用中文,也就是说,保证这个文件的路径是英文的。

 因为我们的计算机处理中文的时候很容易出错的,不如使用英文。

(这个我没有出现过,经常网上冲浪看到有写到这个的,朋友帮忙看这个报错也提到了,先放在这里叭)

代码中原因分析:

1.上一个运行结果未关闭(这个是最常见的)

2.printf/scanf书写错误(C语言程序容易出这个问题)

3.程序没有 main( ) 主函数

4.自定义函数出现错误

    4.1自定义函数声明部分书写错误

    函数声明如下:

void delete_string(string str,string substr);//

 在main函数后面的函数体:

void delete_string(string& str,string substr)//有发现不同嘛,在上面的函数声明的参数列表中第一个字符串变量漏了引用符&
{
    int len = substr.length() ; 
    int pos;
    while(1)
    {
        pos = str.find(substr.c_str() ,0);
        if(pos<0)    break;
        str.erase(pos,len);
    }
}

 4.2声明了自定义函数,却没写函数体,主函数调用了这个没写完的自定义函数

 4.3使用函数模板的时候,建议直接把这个函数写在主函数前

 如图,忽略函数内容,看函数体的位置以及报错信息

2768355-20220609214413864-165278382.png

 声明在前,函数位置后置,报错[Error] ld returned 1 exit status

2768355-20220609214405260-1249824250.png

如图,在主函数上方直接写完整个函数,正常运行

总结:

这些错误往往出现在并不起眼的地方,最常见的原因我觉得分为三类,

第一类:可以靠重启编译器、copy代码到新文件就解决的不明原因

第二类:在程序中出现的非智力因素的错误,像书写和单词拼写错误(我就出现过单词拼写错误,好好学习英语叭)

第三类:我不明所以,半梦半醒的自定义函数部分很爱出这个报错好像,编写自定义函数的时候细心点叭

           (这也不是我想写好就写好的啊)


这些错误我都觉得属于看起来很离谱,不是很好查找原因的

这个报错信息也称得上是我最头疼的报错之一了,多积累经验吧,错个遍以后就知道可能哪出错了

欢迎大家评论区补充~


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK