初次在 Ubuntu 環境下使用 GCC 編譯 C 程式時,常會遇到如下錯誤訊息:
test.c:1:19: 錯誤: stdio.h:No such file or directory test.c:2:23: 錯誤: sys/types.h:No such file or directory test.c:3:20: 錯誤: signal.h:No such file or directory test.c:4:20: 錯誤: ourhdr.h:No such file or directory
錯誤的核心原因在於系統缺少 C 語言標準庫的開發套件,導致編譯器找不到 stdio.h、sys/types.h 等核心標頭檔。
只需安裝 libc6-dev 套件即可補齊缺失的標頭檔與靜態庫。執行以下指令:
sudo apt-get install libc6-dev
安裝過程中會自動處理相依性,連帶安裝 linux-libc-dev:
正在讀取軟體包列表... 完成 正在分析軟體包的依賴關係樹 讀取狀態資訊... 完成 將會安裝下列額外的軟體包: linux-libc-dev 建議安裝的軟體包: glibc-doc manpages-dev 下列【新】軟體包將被安裝: libc6-dev linux-libc-dev 共升級了 0 個軟體包,新安裝了 2 個軟體包,要卸載 0 個軟體包,有 0 個軟體包未被升級。 需要下載 3685kB 的軟體包。 解壓縮後會消耗掉 16.4MB 的額外空間。 您希望繼續執行嗎?[Y/n]y
安裝完成後,GCC 即可正常找到標準標頭檔,編譯問題迎刃而解。
本文轉載自 “Security_net” 博客,原文出處:https://yxh1157686920.blog.51cto.com/7743046/1287998