首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> 關於C

Linux 下 C 程式開發全流程:從編寫、編譯到執行的新手圖解指南

     編輯:關於C

第一步:編寫原始碼

  1. 進入工作目錄:cd ~/work(或任意目錄)
  2. 啟動編輯器:vi hello.c(或 nano、vim、gedit)
  3. 輸入程式碼:
#include <stdio.h>

int main(void) {
    printf("Hello, World!\n");
    return 0;
}
  1. 儲存離開:Esc → :wq + Enter

第二步:編譯程式

基本編譯:

gcc hello.c          # 產生預設 a.out
./a.out              # 執行

推薦編譯(指定輸出檔名 + 開啟所有警告):

gcc -Wall hello.c -o hello
./hello
  • -Wall:開啟常見警告(未使用變數、格式字串不符等),**強烈建議永遠加上**。
  • -o hello:指定輸出執行檔名稱。

第三步:執行與驗證

$ ./hello
Hello, World!

進階:使用數學庫(-lm)

呼叫 `` 函數(如 `sin`、`cos`、`sqrt`)需額外連結數學庫 libm:

#include <stdio.h>
#include <math.h>

int main(void) {
    double x = 1.0;
    printf("cos(1.0) = %f\n", cos(x));
    return 0;
}

編譯命令:

gcc -Wall math_demo.c -o math_demo -lm
#        ↑              ↑           ↑
#      警告          輸出檔      連結 libm(順序建議放最後)

原理:數學函數實作於 `libm.so`(通常在 `/lib` 或 `/usr/lib`),`-lm` 告訴連結器搜尋此庫。

常用 GCC 選項速查

選項用途
-Wall開啟大多數警告
-Wextra額外警告(配合 -Wall)
-O2優化等級 2(釋出版建議)
-g產生除錯資訊(配合 gdb)
-std=c11指定 C 標準(c99/c11/c17)
-I/path加入頭檔搜尋路徑
-L/path加入庫搜尋路徑
-lname連結 libname.so/a

多檔案專案編譯範例

# 分步編譯
gcc -Wall -c main.c -o main.o
gcc -Wall -c utils.c -o utils.o
gcc main.o utils.o -o myapp

# 或單行完成
gcc -Wall main.c utils.c -o myapp

除錯入門:GDB 基本操作

gcc -g -Wall hello.c -o hello
gdb ./hello
(gdb) break main
(gdb) run
(gdb) next / step
(gdb) print var
(gdb) bt
(gdb) quit

常見新手錯誤與解決

一鍵編譯執行腳本(可選)

建立 run.sh:

#!/bin/bash
gcc -Wall "$1.c" -o "$1" && ./"$1"

使用:chmod +x run.sh && ./run.sh hello

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
現象原因解決
command not found: gcc未安裝或 PATH 未設定sudo apt install build-essential (Debian/Ubuntu)
undefined reference to `cos'未連結數學庫加上 -lm
執行檔無法執行 Permission denied無執行權限chmod +x hello(GCC 通常自動給予)
中文亂碼終端機編碼非 UTF-8設定終端機 UTF-8,原始碼存為 UTF-8