發(fā)布時間:2021-12-20 16:38:34來源:轉載
不知道還有多少程序員選擇用C/C++進行應用程序開發(fā)?需要用Python解析C源代碼?想要超快的C編譯速度?Rust等眾多新編程語言,對程序員來說非常有吸引力,移動互聯(lián)網(wǎng)經(jīng)濟的火熱,Java的強烈沖擊,C/C++似乎被眾多程序員遺忘了,但C和C++仍然是編寫應用程序的基礎編程語言。更重要的是,C/C++的開發(fā)文化早已深入人心,這里有五個與C/C++開發(fā)相關的編譯器,庫和支持工具。
1、Ccache
C/C++程序的編譯過程可能需要很長時間,Ccache是為了減輕一些編譯負擔。顧名思義,它是一個緩存,可以保存編譯代碼以便重用,如果相鄰的幾次編譯運行沒有改變代碼,那么給定項目的運行時間越長,加速越多。它以逐個文件為基礎,采用簡單的MD4哈希算法來確定給定文件是否需要重新編譯。不支持編譯器的某些命令行命令,當Ccache無法知曉下一步該做什么時,它將返回原始編譯器。
2、TCC
“T”代表“小”,“CC”代表“C編譯器”。這個C99兼容編譯器的二進制分發(fā)只有1.5MB。不僅小,TCC還超快,簡單的C應用程序在一分鐘之內就可以編譯并運行,足夠快以致可以使用C應用程序作為腳本。不建議程序員依賴TCC來生成二進制文件,它不會執(zhí)行其他C編譯器執(zhí)行的復雜優(yōu)化,但它可以不需等待直接對C應用程序進行原型化。
對于鐘愛Visual Studio code的程序員,有一個非官方的擴展,可從該編輯器一鍵編譯和運行。
3、Cpi
Cpi本質上是C ++的TCC:一個超級C ++編譯器,允許適度的C ++程序像腳本一樣執(zhí)行。在腳本的頂部插入一個shebang,在腳本的正文中插入一個CompileOptions:指令,如果PHP解釋器運行PHP腳本,Cpi可以按需運行它。如果需要,Cpi可以生成獨立的二進制文件,甚至包含類似REPL的交互模式。
4、Kcgi
對于習慣在Web應用程序中使用C編程語言,并對速度有所要求的程序員,可以考慮使用kcgi庫。它提供了一組用于接收HTTP請求,解析,返回標頭和正文以及獲取和設置Cookie的原語。Kcgi還有一些方法來保護系統(tǒng)免受攻擊,因為它可以在沙箱子進程中解析請求。這確實強加了一些開銷,但比使用完全不受信任的框架要好得多。一個小缺點:它還沒有移植到Windows?,F(xiàn)在,它是嚴格的Unix系列操作系統(tǒng)。
5、Pycparser
Python和C之間有很多重疊:Python的解釋器是用C編寫的,可以接受C擴展。為此,一些項目可以彌合兩者之間的差距,Pycparser就是其中之一,但不能運行C本身。相反,它提供了C語言解析器的純Python實現(xiàn)。它構成了基礎cffi庫的一部分,這是Python的ctypes利用C代碼替代Python。如果是對性能要求很高的程序員,不建議使用Pycparser,如果希望利用Python的靈活性和豐富的庫來分析C代碼庫,那么Pycparser將非常方便。