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

Tiny C Compiler (TCC) 介紹:輕量級 C 編譯器的下載、使用與特性

     編輯:關於C語言

什麼是 TCC?

**Tiny C Compiler (TCC)** 是一個極小、極快的 C 編譯器,由 Fabrice Bellard 編寫,支持 C90 及部分 C99、GNU 擴展。特點:

  • 體積極小(~100 KB 二進制)
  • 編譯速度極快(百萬行/秒量級)
  • 內置汇編器、鏈接器,**無需外部依賴**
  • 支持**即時編譯運行** (`tcc -run file.c`)
  • 可作為腳本語言嵌入(`libtcc`)

下載與安裝

  • 官網:https://bellard.org/tcc/
  • Windows:下載 `tcc-0.9.27-win64-bin.zip` 解壓即用
  • Linux:`apt install tcc` / `yum install tcc` / `pacman -S tcc`
  • 源碼編譯:`./configure && make && make install`

基本使用

# 編譯生成可執行文件
tcc hello.c -o hello

# 直接編譯運行(腳本模式)
tcc -run hello.c

# 編譯多文件
tcc main.c utils.c -o app

# 指定輸出目錄
tcc -o out/prog prog.c

# 顯示版本
tcc -v

特色功能

1. 內存編譯運行 (libtcc)

// 宿主程序動態編譯運行 C 代碼字符串
#include 
TCCState *s = tcc_new();
tcc_set_output_type(s, TCC_OUTPUT_MEMORY);
tcc_compile_string(s, "int add(int a,int b){return a+b;}");
tcc_relocate(s, TCC_RELOCATE_AUTO);
int (*add)(int,int) = tcc_get_symbol(s, "add");
printf("%d\n", add(1,2)); // 3
tcc_delete(s);

2. 綁定 C 函數供腳本調用

tcc_add_symbol(s, "my_print", my_print_func);
tcc_compile_string(s, "void test(){ my_print(\"from script\"); }");

3. 支持 `#include` 系統頭文件

標準庫頭文件需安裝 `tcc` 開發包或指定 `-I` 路徑。

適用場景

  • 嵌入式系統構建(極小體積)
  • 測試/教學環境快速驗證代碼片段
  • 應用程序嵌入腳本引擎(插件系統、熱重載)
  • 即時編譯測試(CI/CD 加速)

局限性

  • 優化程度低(無 `-O2` 等級優化),生成代碼較 GCC/Clang 慢
  • C++ 不支持
  • 部分 GNU 擴展、C11/C17 特性不完全支持
  • 調試信息生成有限

總結

TCC 是**「小而美」**編譯器的典範。不適合發布構建,但**開發調試、嵌入腳本、極簡構建**場景無可替代。建議開發者機器常備 `tcc`,配合 `tcc -run` 秒級驗證算法邏輯、測試 API 用法。

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