色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

【編譯問題】很詭異的編譯報錯expected declaration or statement at end of input

嵌入式物聯網開發 ? 來源:嵌入式物聯網開發 ? 作者:嵌入式物聯網開發 ? 2022-12-07 08:58 ? 次閱讀

**【C語言進階】很詭異的編譯報錯expected declaration or statement at end of input **

一個很詭異的編譯報錯,不仔細還真發現不了!

1 問題現場

有一天我在調試代碼的時候,剛剛代碼還好好的,突然來了一個報錯:

recan@ubuntu:~/11111$ gcc -o test 111/222/333/444/555/666/777/888/999/test.c 
 111/222/333/444/555/666/777/888/999/test.c: In function ‘test3’:
 111/222/333/444/555/666/777/888/999/test.c:37:1: error: expected declaration or statement at end of input
    37 | }
       | ^

這就讓我很納悶,咋回事呢?

2 復現代碼

我們來看下當時的代碼,為了說明問題,我把無關代碼都刪除了,僅保留有效代碼:

?
 #include 
 ?
 int test1(void)
 {
 return 0;
 }
 ?
 int test2(void)
 {
 return 0;
 }
 ?
 ?
 int test3(void)
 {
 return 0;
 ?
 ?
 int test4(void)
 {
 return 0;
 }
 ?
 ?
 int test5(void)
 {
 return 0;
 }
 ?
 ?
 int main(void)
 {
     printf("__FILE__: %s\\n", __FILE__);
 return 0;
 }
 ?

示例代碼很簡單,就是一堆的函數,然后啥也沒干。

3 編譯分析

**根據編譯報錯,我們看下,提示 **line37行 報錯了? 37行不是文件的結束嗎?

**報錯的英文對應的中文含義是:**錯誤:輸入末尾應為聲明或語句

很顯然不是37行有問題嗎?我的main函數肯定沒有問題???

那么有沒有可能是前面的函數有問題???

**原來是 line16 中的test3函數,少了結尾的 **} 大括號,導致了編譯報錯的蔓延。

當然,解決這個編譯問題也很簡單,把test函數的大括號補上即可。

4 小小總結

  • 排查編譯問題,不要僅局限于報錯的行號,找找上下文,可能別人的錯誤導致了你的錯誤;
  • **誤刪一行 **} 大括號,不經意間就報錯了;
  • 代碼管理,一定要用起來;這種情況,實在不行就比對下代碼,很容易就發現問題了。

5 更多分享

[架構師李肯]

架構師李肯全網同名 ),一個專注于嵌入式IoT領域的架構師。有著近10年的嵌入式一線開發經驗,深耕IoT領域多年,熟知IoT領域的業務發展,深度掌握IoT領域的相關技術棧,包括但不限于主流RTOS內核的實現及其移植、硬件驅動移植開發、網絡通訊協議開發、編譯構建原理及其實現、底層匯編及編譯原理、編譯優化及代碼重構、主流IoT云平臺的對接、嵌入式IoT系統的架構設計等等。擁有多項IoT領域的發明專利,熱衷于技術分享,有多年撰寫技術博客的經驗積累,連續多月獲得RT-Thread官方技術社區原創技術博文優秀獎,榮獲[CSDN博客專家]、[CSDN物聯網領域優質創作者]、[2021年度CSDN&RT-Thread技術社區之星]、[2022年RT-Thread全球技術大會講師]、[RT-Thread官方嵌入式開源社區認證專家]、[RT-Thread 2021年度論壇之星TOP4]、[華為云云享專家(嵌入式物聯網架構設計師)]等榮譽。堅信【知識改變命運,技術改變世界】!

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • C語言
    +關注

    關注

    180

    文章

    7605

    瀏覽量

    136993
  • 編譯
    +關注

    關注

    0

    文章

    659

    瀏覽量

    32890
  • RT-Thread
    +關注

    關注

    31

    文章

    1293

    瀏覽量

    40193
收藏 人收藏

    評論

    相關推薦

    RX231系列MCU舊工程打開編譯報錯問題解決方法

    RX231系列MCU舊工程打開編譯報錯,使用新版本為Renesas e2 studio,Version: 2023-04 (23.4.0)
    的頭像 發表于 01-03 12:32 ?1199次閱讀
    RX231系列MCU舊工程打開<b class='flag-5'>編譯</b><b class='flag-5'>報錯</b>問題解決方法

    I2C boot使用ARM GCC編譯pass, 改用ARM MDK編譯報錯怎么解決?

    I2C boot 使用ARM GCC 編譯pass, 改用ARM MDK 編譯報錯如下, 怎么解決,謝謝! cannot open source input file &quo
    發表于 06-03 06:06

    編譯例程pipeline_bt_source失敗怎么解決?

    編譯其他ADF庫里的例程沒有問題,就這個會出錯,初步分析是ADF庫里調用了IDF庫的函數,但是找不到,不知道要怎么將它們關聯起來,以下是編譯報告: C:/Users/HUANG/esp
    發表于 06-28 06:38

    mplab編程C,程序編譯不出來

    declaration specifiers before 'main'interrupts.c:43:1: error: expected '{' at end of input
    發表于 08-05 15:17

    DSP2812 ccs3.3編譯報錯At end of source: error: expected a "}",但實際上沒少“}”

    急救,請諸位大神解疑釋難:采用DSP2812,在 ccs3.3環境下編譯報錯At end of source: error: expected a "}",但實際上沒少“}”
    發表于 06-21 11:49

    DSP2812在ccs3.3環境下報錯At end of source: error: expected a "}",但實際上沒少“}”

    急救,請諸位大神解疑釋難:采用DSP2812,在 ccs3.3環境下編譯報錯At end of source: error: expected a "}",但實際上沒少“}”
    發表于 06-21 11:55

    CC3200 應用示例中編譯報錯

    CC3200 應用示例中 wlan_station_Release編譯報錯“OSI_OK,” expected an identifier在枚舉定義時報錯
    發表于 03-22 13:50

    請問數組定義報錯:#19 extra text after expected end of number是什么原因造成的?如何解決?

    本帖最后由 一只耳朵怪 于 2018-6-14 08:48 編輯 我用CCS6.0定義了一個數組,編譯時報這個錯誤:#19 extra text after expected end
    發表于 06-13 07:03

    進入buildroot-2016.11手動編譯 make 全部包提示 libgpgme-1.7.1 包無法編譯通過是為什么?

    ',' or ';' before '{' token{^context.cpp:1645:1: error: expected '}' at end of input}^make[6
    發表于 01-13 08:47

    吳鑒鷹總結的Keil編譯常見問題(一)

    吳鑒鷹總結的Keil編譯常見問題,例如:.error: #18: 6.error: #18: expected a ")" 如果是出現在c 文件中 多半是因為少了一個")"或者錯誤行有編譯器不識別的字符 如果出現在頭文件中
    發表于 07-22 15:31 ?0次下載

    IAR編譯問題

    的,就好比組1有.h文件但是組2 沒有然后編譯就會報錯。解決辦法就是將相關.h文件復制到相關的所有文件夾里面問題二:修改好了編譯報錯,調試的時候不能單步運行,也打不了斷點,這時候需要
    發表于 12-03 10:36 ?8次下載
    IAR<b class='flag-5'>編譯</b>問題

    CCS編譯器 報 error: expected a “)“ 的錯誤

    使用CCS 進行m430f5529的開發過程中,編譯器報error: expected a “)” 的錯誤。當時以為是自己少了括號,但是認真檢查后發現無誤,經過反復的嘗試,發現只要函數的輸入參數為N
    發表于 12-16 16:56 ?14次下載
    CCS<b class='flag-5'>編譯</b>器 報 error: <b class='flag-5'>expected</b> a “)“ 的錯誤

    error:expected identifier before ‘(‘ token,結構體指針宏定義錯誤

    error:expected identifier before ‘(’ token,結構體指針宏定義錯誤編譯時彈出標題所示錯誤,一般為宏定義里有與其他地方重復的常量符號。找出名字重復的符號并修改
    發表于 01-13 15:42 ?11次下載
    error:<b class='flag-5'>expected</b> identifier before ‘(‘ token,結構體指針宏定義錯誤

    VScode編譯器如何配置C/C++編譯環境

    昨天有伙伴私信我,為什么我用C語言寫的hello world幾行代碼,在編譯器里面報錯了呢?
    的頭像 發表于 03-16 08:38 ?5640次閱讀

    【GCC編譯運行報錯】error while loading

    【GCC編譯】運行編譯后的程序報錯 error while loading shared libraries: lib*.so: cannot open shared object file
    的頭像 發表于 08-26 13:14 ?7396次閱讀
    【GCC<b class='flag-5'>編譯</b>運行<b class='flag-5'>報錯</b>】error while loading
    主站蜘蛛池模板: 夜色福利院在线观看免费| 亚洲 无码 制服 日韩| 亚洲国产高清福利视频| 国产69精品久久久久乱码免费| 欧美乱妇狂野欧美在线视频| XXOO麻豆国产在线九九爱| 日日噜噜夜夜狠狠视频| 成 人 网 站毛片| 帅小伙和警官同性3p| 海量激情文学| 在线涩涩免费观看国产精品| 你是淫荡的我的女王| 成年AV动漫| 永久免费无码AV国产网站| 女子叉开腿让男子桶免费软件| 成人18视频在线| 亚洲高清毛片一区二区| 欧美日韩北条麻妃一区二区| 精品国产乱码久久久久久免费流畅| 最近中文字幕在线中文高清版| 欧美日韩精品不卡在线观看| 久久妇女高潮几次MBA| 啊…嗯啊好深男男高h文总受| 亚洲AV午夜福利精品香蕉麻豆| 欧美日韩精品一区二区三区四区| 久久精品123| 国产一区二区三区内射高清| 99精品久久精品一区二区| 日本精油按摩| 果冻传媒在线观看视频| 高h 纯肉文| 在线不卡日本v二区| 亚洲精品成人AV在线观看爽翻| 米奇影视999| 国产精品涩涩涩视频网站| 在线播放真实国产乱子伦| 亚洲欧美日韩国产另类电影| 日韩人妻少妇一区二区三区| 精品视频在线观看视频免费视频| 国产精品人妻无码久久久奥特曼| 中文字幕无线观看不卡网站|