一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

15行代碼引發(fā)1800多行編譯錯誤:問題排查挑戰(zhàn)

學(xué)益得智能硬件 ? 來源:學(xué)益得智能硬件 ? 2025-02-12 11:10 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

寫了 15 行代碼,編譯報錯竟然高達(dá) 1800 多行,這種奔潰的瞬間應(yīng)該有很多同學(xué)遇到過。

代碼分為兩塊,一個頭文件,一個源文件。

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);
}

開始編譯,當(dāng)敲下回車的那一刻,瞬間有點上頭,編譯報錯已經(jīng)超出了終端的范圍,一直往上翻到頭也沒找到編譯的命令。

我嘗試把錯誤定向到文件中,看了一下,有 1800 多行。

難怪很多初學(xué)者只需要半天時間從入門到放棄,這么多錯誤,根本無從下手。

先來大概分析下,提示的這些錯誤基本都是標(biāo)準(zhǔn)頭文件里面的錯誤,比如 stdio.h,很顯然,這是不可能的。

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

這個問題,一定是跟頭文件有關(guān),而且大概率是你寫的頭文件,影響了別人的頭文件,比如函數(shù)聲明的后面少了分號。

當(dāng) test.h 被展開的時候,由于函數(shù)聲明后面沒有加分號,導(dǎo)致其他被展開的頭文件都不合符語法要求,頭文件包含的越多,報錯也就越多。如果這個時候真的去標(biāo)準(zhǔn)頭文件里面找問題,基本就廢了。

編譯問題在C語言中應(yīng)該是最簡單的問題,現(xiàn)在的編譯器足夠智能,甚至能告訴你怎么修該。多寫代碼,遇到的多了,就能形成條件反射,看到問題,就能知道怎么修改。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4900

    瀏覽量

    70758
  • 編譯
    +關(guān)注

    關(guān)注

    0

    文章

    679

    瀏覽量

    34004

原文標(biāo)題:寫了15行代碼,編譯報錯1800多行

文章出處:【微信號:學(xué)益得智能硬件,微信公眾號:學(xué)益得智能硬件】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    電商API常見錯誤排查指南:避免集成陷阱

    ? 在電商平臺開發(fā)中,API集成是連接系統(tǒng)、實現(xiàn)數(shù)據(jù)交換的核心環(huán)節(jié)。然而,許多開發(fā)者在集成過程中常遇到錯誤,導(dǎo)致項目延遲、數(shù)據(jù)丟失或用戶體驗下降。本文將逐步介紹常見錯誤類型、排查方法以及預(yù)防策略
    的頭像 發(fā)表于 07-11 14:21 ?136次閱讀
    電商API常見<b class='flag-5'>錯誤</b><b class='flag-5'>排查</b>指南:避免集成陷阱

    RTsmart源碼編譯錯誤,提醒我缺少文件導(dǎo)致make失敗,為什么?

    出現(xiàn) 不理解,之前都是不會出現(xiàn)這種錯誤的,懷疑是源碼拉取缺少了部分文件 不僅如此,編譯了YOLO的可執(zhí)行文件也無法實現(xiàn),提醒VICAP初始化失敗超時,打不開標(biāo)簽文件,模型無效,我沒有改過YOLO部分代碼
    發(fā)表于 06-20 06:25

    使用rt-thread構(gòu)建openmv的固件工程,出現(xiàn)編譯錯誤的原因?

    使用rt-thread構(gòu)建openmv的固件工程,用的都是示例工程,代碼一點也沒有改動,直接編譯出現(xiàn)錯誤
    發(fā)表于 06-12 07:23

    JDK從8升級到21的問題集

    " ?sun.misc.BASE64Encoder等內(nèi)部API廢棄 → 引發(fā)編譯錯誤 ?JAXB/JAX-WS從JDK核心剝離 → XML處理鏈斷裂 ?Lombok與新版
    的頭像 發(fā)表于 06-06 16:49 ?252次閱讀

    打開FSP配置器界面的具體步驟

    如果目標(biāo)工程項目是新建的項目,可以直接編譯并通過。但是若是新導(dǎo)入的項目,需要先打開FSP配置界面重新生成FSP庫相關(guān)代碼,然后再進(jìn)行編譯,否則會提示編譯錯誤。具體步驟如下。
    的頭像 發(fā)表于 05-06 15:58 ?887次閱讀
    打開FSP配置器界面的具體步驟

    BSP36 gcc_11.3.0編譯錯誤的原因?怎么解決?

    在 Yocto 項目中構(gòu)建 BSP36 時遇到 gcc_11.3.0 編譯錯誤。 詳細(xì)日志如下: [i]/usr/src/debug/gcc/11.3.0-r0/build/gcc
    發(fā)表于 03-27 08:19

    直流充電測試負(fù)載常見故障排查

    分信號,確認(rèn)幅值在2-3V范圍。某實驗室曾因屏蔽層接地不良導(dǎo)致信號振鈴,引發(fā)CRC校驗錯誤率升高至15%。 BMS模擬失效:重點檢測電池模型參數(shù)配置,驗證SOC-內(nèi)阻曲線設(shè)置合理性。某廠商因未更新
    發(fā)表于 03-18 12:32

    使用STM32H563遇到程序編譯時顯示編譯錯誤怎么解決?

    使用STM32H563遇到程序編譯時顯示編譯錯誤,原因是空間不夠了,在不改變硬件的情況下有什么方法讓空間變大嗎
    發(fā)表于 03-13 07:34

    DLP?? NIRscan?? Nano源代碼編譯錯誤identifier is undifined怎么解決?

    我們購買了DLP NIRScan Nano EVM模塊,從TI官網(wǎng)下載了源代碼Mobile Spectroscopy TIVA EVM,編譯出現(xiàn)了兩個錯誤。該錯誤由其他工程師于201
    發(fā)表于 02-27 06:20

    什么樣的代碼會被編譯器優(yōu)化

    現(xiàn)在的編譯器有多智能,可能你辛辛苦苦寫的代碼,在編譯器看來就是幾句廢話,直接被刪除掉。
    的頭像 發(fā)表于 01-16 16:38 ?604次閱讀

    GPIO錯誤排查與解決

    在嵌入式系統(tǒng)和微控制器編程中,通用輸入輸出(GPIO)是最常見的接口之一。然而,在使用GPIO時,我們可能會遇到各種錯誤。 1. 理解GPIO GPIO是微控制器上的一組引腳,可以被配置為輸入或輸出
    的頭像 發(fā)表于 01-09 09:46 ?2329次閱讀

    Triton編譯器與GPU編程的結(jié)合應(yīng)用

    Triton編譯器簡介 Triton編譯器是一種針對并行計算優(yōu)化的編譯器,它能夠自動將高級語言代碼轉(zhuǎn)換為針對特定硬件優(yōu)化的低級代碼。Trit
    的頭像 發(fā)表于 12-25 09:13 ?840次閱讀

    SQL錯誤代碼及解決方案

    在SQL數(shù)據(jù)庫開發(fā)和管理中,常見的錯誤代碼及其解決方案可以歸納如下: 一、語法錯誤(Syntax Errors) 錯誤代碼 :無特定代碼,但通常會在
    的頭像 發(fā)表于 11-19 10:21 ?6546次閱讀

    java反編譯代碼可以修改么

    Java反編譯是一種將編譯后的Java字節(jié)碼(.class文件)轉(zhuǎn)換回源代碼的過程。反編譯后的代碼可以進(jìn)行修改,但是需要注意,反
    的頭像 發(fā)表于 09-02 11:00 ?1281次閱讀

    ida反編譯出來代碼能直接用嗎

    IDA反編譯出來的代碼通常 不能直接使用 ,這主要基于以下幾個方面的原因: 一、代碼的不完整性 IDA反編譯生成的代碼可能缺少原始源
    的頭像 發(fā)表于 09-02 10:55 ?1454次閱讀