0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

15行代码引发1800多行编译错误:问题排查挑战

学益得智能硬件 来源:学益得智能硬件 2025-02-12 11:10 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

写了 15 行代码,编译报错竟然高达 1800 多行,这种奔溃的瞬间应该有很多同学遇到过。

代码分为两块,一个头文件,一个源文件。

test.h

#ifndef TEST_H
#define TEST_H

#include 

size_tlength(constchar*s)


#endif

test.c

#include "test.h"
#include 
#include 
#include 
#include 


int main()
{
    printf("%d
", length("aa"));
}


size_t length(const char *s) 
{
    return strlen(s);
}

开始编译,当敲下回车的那一刻,瞬间有点上头,编译报错已经超出了终端的范围,一直往上翻到头也没找到编译的命令。

我尝试把错误定向到文件中,看了一下,有 1800 多行。

难怪很多初学者只需要半天时间从入门到放弃,这么多错误,根本无从下手。

先来大概分析下,提示的这些错误基本都是标准头文件里面的错误,比如 stdio.h,很显然,这是不可能的。

/usr/include/stdio.h:911:14: error: storage class specified for parameter ‘ctermid’
  911 | extern char *ctermid (char *__s) __THROW
      |

这个问题,一定是跟头文件有关,而且大概率是你写的头文件,影响了别人的头文件,比如函数声明的后面少了分号。

当 test.h 被展开的时候,由于函数声明后面没有加分号,导致其他被展开的头文件都不合符语法要求,头文件包含的越多,报错也就越多。如果这个时候真的去标准头文件里面找问题,基本就废了。

编译问题在C语言中应该是最简单的问题,现在的编译器足够智能,甚至能告诉你怎么修该。多写代码,遇到的多了,就能形成条件反射,看到问题,就能知道怎么修改。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 代码
    +关注

    关注

    30

    文章

    4986

    浏览量

    74644
  • 编译
    +关注

    关注

    0

    文章

    699

    浏览量

    35404

原文标题:写了15行代码,编译报错1800多行

文章出处:【微信号:学益得智能硬件,微信公众号:学益得智能硬件】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    DSP编译错误的问题

    编译DSP28335工程,出现如下错误: undefined first referenced symbol in file _mainC:/Program Files/Texas
    发表于 05-25 10:38

    Nginx 502 Bad Gateway错误的成因和排查方法

    502 Bad Gateway 是 Nginx 作为反向代理服务器时最常遭遇的错误状态码。这个错误意味着 Nginx 作为网关,成功与后端 upstream 建立了连接,但后端返回了一个无效响应
    的头像 发表于 05-06 11:13 567次阅读

    Nginx日志分析命令实践和常见问题排查思路

    日常运维工作中,日志分析是排查问题最直接的手段。Nginx 作为入口层代理,几乎所有请求都要经过它。当网站出现响应慢、500 错误、502 网关超时、限流失效等问题时,第一反应应该是查 Nginx
    的头像 发表于 04-15 14:12 424次阅读

    CAN总线报错看不懂?5种错误帧+5步排查法一次讲清

    CAN总线通信异常?错误帧频繁出现?本文详解五种错误帧类型,并提供五步排查法,助你快速定位问题根源。错误帧的作用错误帧是CAN总线用于
    的头像 发表于 03-16 11:36 769次阅读
    CAN总线报错看不懂?5种<b class='flag-5'>错误</b>帧+5步<b class='flag-5'>排查</b>法一次讲清

    编译 MPC5775K 的外部中断时遇到的错误如何解决?

    当我为MPC5775K编译外部中断程序,参考示例“示例-MPC5775K-PIT-ISR-v1_0-GHS614”,并使用S32DS PoWer2.1时,遇到了这些编译错误结果(图1)。这些错误(图
    发表于 03-02 07:19

    ESP_I2S库本身编译失败

    你现在遇到的编译错误核心是:ESP32开发板包(2.0.9版本)自带的ESP_I2S库内部文件I2S.cpp引用了I2S.h,但该头文件缺失或路径错误,导致ESP_I2S库本身编译失败,进而整个项目
    发表于 01-22 07:11

    Keil编译错误汇总

    1. 编译时出现Undefined symbol EXTI_Init (referred from exti.o).解决: ①检查头文件路径是否添加 ②检查相对应的库是否添加。此处最容易忽略,而本人
    发表于 01-21 07:40

    ESP32 编译过程中 bootloader 配置阶段的 CMake 缓存冲突错误,记录

    你遇到的是 ESP32 编译过程中 bootloader 配置阶段的 CMake 缓存冲突错误,核心原因是系统中混合了 ESP-IDF v5.5.1 和 v5.4.3 两个版本的路径,导致
    发表于 12-23 07:07

    下载模式的切换之后,会出现编译错误的解决办法

    一、队伍介绍 本篇为蜂鸟E203系列分享第一篇,本篇介绍的内容是解决下载模式的切换之后出现编译错误问题。 二、问题提出 在进行下载模式切换之后,进行编译,提示如下图所示的错误: 三、问题解决 下载
    发表于 10-30 08:11

    使用RTOS的SDK,调整rtsmart-menuconfig出现编译错误怎么解决?

    Drivers---> 4.进入Using USB---> 5.对 Using USB host 进行使能启用 6.再次编译make时出现编译错误 期待结果和实际结果 最后
    发表于 07-22 07:59

    电商API常见错误排查指南:避免集成陷阱

      在电商平台开发中,API集成是连接系统、实现数据交换的核心环节。然而,许多开发者在集成过程中常遇到错误,导致项目延迟、数据丢失或用户体验下降。本文将逐步介绍常见错误类型、排查方法以及预防策略
    的头像 发表于 07-11 14:21 2412次阅读
    电商API常见<b class='flag-5'>错误</b><b class='flag-5'>排查</b>指南:避免集成陷阱

    编译错误: error: unrecognizable insn,不知道原因,请教!

    用start_gui.exe生成的代码,再用SEGGER Embedded打开,编译有错,不知道是什么原因,请教各位大佬?
    发表于 06-23 14:45

    RTsmart源码编译错误,提醒我缺少文件导致make失败,为什么?

    出现 不理解,之前都是不会出现这种错误的,怀疑是源码拉取缺少了部分文件 不仅如此,编译了YOLO的可执行文件也无法实现,提醒VICAP初始化失败超时,打不开标签文件,模型无效,我没有改过YOLO部分代码
    发表于 06-20 06:25

    手动添加cubeMX的软件自动生成代码后,编译出现’rtthread.elf’:No Such File 的错误怎么解决?

    手动添加cubeMX的软件自动生成代码后,编译出现’rtthread.elf’:No Such File 的错误
    发表于 06-12 07:46

    使用rt-thread构建openmv的固件工程,出现编译错误的原因?

    使用rt-thread构建openmv的固件工程,用的都是示例工程,代码一点也没有改动,直接编译出现错误
    发表于 06-12 07:23