• 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使用函数模板的时候,建议直接把这个函数写在主函数前

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

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

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

     

    总结:

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

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

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

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

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


     

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

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

    欢迎大家评论区补充~

     

  • 相关阅读:
    LeetCode 刷题 [C++] 第98题.验证二叉搜索树
    微信小程序(原生)使用Swiper实现(商品详情)视频和图片轮播(仿京东/淘宝商品详情头部视频+图片轮播)
    手动与使用骨架创建Maven工程idea版及tomcat插件安装与web工程启动
    python+nodejs+vue教材征订管理系统
    关于BenchMark/c++11计时器/Chrome:tracing 的一些笔记
    2023年第三届中国高校大数据挑战赛第二场赛题D题赛题
    基于JAVA的网上拍卖秒杀系统,拿去参考【数据库设计、源码、开题报告】
    005. 字符串分割[100 分]
    淘宝API接口介绍
    安卓LeakCanary研究
  • 原文地址:https://www.cnblogs.com/sparse-shadow/p/16361370.html