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

Linux 系統搭建 C 語言開發環境完整實戰:從 Ubuntu JeOS 到 VIM、GCC、Makefile

     編輯:C++ 入門

前言

在 Linux 環境下進行 C 語言開發,是理解作業系統底層機制、編譯鏈結流程、工具鏈運作的最佳路徑。本文以 Ubuntu JeOS (Just Enough OS) 為基礎,在 VMware 虛擬機中從零建構純命令列開發環境:安裝系統、配置網路、安裝 build-essential (GCC/G++/Make)、配置 VIM 編輯器、撰寫多檔案專案與 Makefile、除錯基礎。適合嵌入式、系統程式、後端開發入門者建立扎實基本功。

一、安裝 Ubuntu JeOS 虛擬機

  1. 下載 Ubuntu Server JeOS ISO(精簡核心、無桌面、適合虛擬機)。
  2. VMware 建立新虛擬機 → 選擇 Linux / Ubuntu 64-bit → 分配 1-2 GB RAM、20 GB 磁碟。
  3. 掛載 ISO 啟動安裝:選擇語言、鍵盤、主機名、使用者、密碼、時區、磁碟分區(全盤使用 LVM 或手動分區)。
  4. 安裝完成重啟,以建立的使用者登入。

二、安裝 VMware Tools(共享資料夾、複製貼上、解析度自適應)

# 1. 掛載 VMware Tools 虛擬光碟 (VMware 選單 → Virtual Machine → Install VMware Tools)
sudo mkdir -p /mnt/cdrom
sudo mount /dev/cdrom /mnt/cdrom

# 2. 解壓並安裝
cd /tmp
tar xzf /mnt/cdrom/VMwareTools-*.tar.gz
cd vmware-tools-distrib
sudo ./vmware-install.pl -d  # -d 預設選項自動安裝

# 3. 重啟或重新載入模組
sudo reboot

共享資料夾啟用: VMware 設定 → Options → Shared Folders → Always enabled → 加入 Windows 資料夾 → 掛載點 /mnt/hgfs(需 vmhgfs-fuse)。

三、配置網路(NAT 模式 + DHCP)

# 1. 確認介面名稱
ip link show  # 或 ifconfig -a,通常為 ens33 或 eth0

# 2. 編輯 Netplan 配置 (Ubuntu 18.04+)
sudo vi /etc/netplan/00-installer-config.yaml
# 內容:
network:
  version: 2
  renderer: networkd
  ethernets:
    ens33:          # 替換為實際介面名
      dhcp4: true

# 3. 套用
sudo netplan apply

# 4. 驗證
ip addr show ens33
ping 8.8.8.8

四、安裝開發工具鏈

# 更新套件索引
sudo apt update

# 一鍵安裝 GCC, G++, Make, libc-dev, binutils 等
sudo apt install build-essential

# 安裝除錯器
sudo apt install gdb

# 驗證版本
gcc --version
g++ --version
make --version
gdb --version

五、配置 VIM 程式碼編輯環境

sudo apt install vim  # 或 vim-gtk3 支援剪貼簿

# 編輯系統級或使用者級配置
vi ~/.vimrc
# 推薦基礎配置:
syntax on                 # 語法高亮
set number                # 顯示行號
set relativenumber        # 相對行號(方便跳轉)
set autoindent            # 自動縮排
set smartindent           # 智慧縮排 (C 語言)
set tabstop=4             # Tab 寬度
set shiftwidth=4          # 縮排寬度
set expandtab             # Tab 轉空格
set cursorline            # 高亮當前行
set hlsearch              # 高亮搜尋
set incsearch             # 漸進搜尋
set ignorecase            # 搜尋忽略大小寫
set smartcase             # 含大寫則區分大小寫
set mouse=a               # 滑鼠支援
set clipboard=unnamedplus # 系統剪貼簿整合 (需 vim-gtk3)
set encoding=utf-8
set fileencodings=utf-8,cp950,big5

# 進階:安裝外掛管理器 (vim-plug) + 常用外掛
# 參考:https://github.com/junegunn/vim-plug

六、撰寫多檔案 C 專案與 Makefile

1. 專案結構

~/c_project/
├── include/
│   └── math.h
├── src/
│   ├── math.c
│   └── hello.c
└── Makefile

2. 標頭檔 include/math.h

#ifndef _MATH_H
#define _MATH_H

int factorial(int n);   // 階乘
int sum_factorial(int n); // 1! + 2! + ... + n!

#endif

3. 實作 src/math.c

#include "math.h"

int factorial(int n) {
    if (n <= 1) return 1;
    return n * factorial(n - 1);
}

int sum_factorial(int n) {
    int sum = 0;
    for (int i = 1; i <= n; ++i) sum += factorial(i);
    return sum;
}

4. 主程式 src/hello.c

#include 
#include "math.h"

int main() {
    int n;
    printf("請輸入正整數 n: ");
    if (scanf("%d", &n) != 1 || n < 1) {
        fprintf(stderr, "輸入無效\n");
        return 1;
    }
    printf("1! + 2! + ... + %d! = %d\n", n, sum_factorial(n));
    return 0;
}

5. Makefile

CC = gcc
CFLAGS = -Wall -Wextra -O2 -Iinclude
TARGET = hello
SRCS = src/hello.c src/math.c
OBJS = $(SRCS:.c=.o)

all: $(TARGET)

$(TARGET): $(OBJS)
	$(CC) -o $@ $^

%.o: %.c
	$(CC) $(CFLAGS) -c $< -o $@

clean:
	rm -f $(OBJS) $(TARGET)

.PHONY: all clean

6. 建置與執行

cd ~/c_project
make
./hello
# 輸入 5 → 輸出 1!+2!+3!+4!+5! = 153

七、GDB 基礎除錯流程

# 1. 編譯加入除錯資訊
make clean
make CFLAGS="-Wall -Wextra -g -Iinclude"

# 2. 啟動 GDB
gdb ./hello

# 3. 常用指令
(gdb) break main          # 在 main 設中斷點
(gdb) run                 # 執行
(gdb) next (n)            # 單步跳過函式呼叫
(gdb) step (s)            # 單步進入函式
(gdb) print n             # 印出變數值
(gdb) backtrace (bt)      # 呼叫堆疊
(gdb) continue (c)        # 繼續執行
(gdb) quit                # 離開

八、進階主題:靜態/動態函式庫建立

# 靜態庫
gcc -c src/math.c -o math.o -Iinclude
ar rcs libmath.a math.o
# 使用:gcc src/hello.c -o hello -Iinclude -L. -lmath

# 動態庫
gcc -fPIC -c src/math.c -o math.o -Iinclude
gcc -shared -o libmath.so math.o
# 使用:gcc src/hello.c -o hello -Iinclude -L. -lmath -Wl,-rpath,.
# 執行前:export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH

九、參考資源與學習路徑

結語

從零打造 Linux C 開發環境,不僅是工具安裝,更是對「原始碼 → 預處理 → 編譯 → 組譯 → 連結 → 執行」完整生命週期的親身實踐。熟練掌握 apt 套件管理、gcc 編譯選項、make 依賴推導、vim 高效編輯、gdb 除錯流程,即擁有了在任何 Linux 伺服器、嵌入式裝置、雲端容器中進行 C/C++ 開發的通用鑰匙。建議後續深入:交叉編譯工具鏈、CMake 現代建構系統、Clang 靜態分析、Valgrind 記憶體檢測、Perf 效能分析,逐步邁向系統級開發專家。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved