# c4 **Repository Path**: t_758/c4 ## Basic Information - **Project Name**: c4 - **Description**: No description available - **Primary Language**: Unknown - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 1 - **Created**: 2021-11-27 - **Last Updated**: 2024-08-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README c4 - C in four functions ======================== An exercise in minimalism. Try the following: gcc -o c4 c4.c (you may need the -m32 option on 64bit machines) ./c4 hello.c ./c4 -s hello.c ./c4 c4.c hello.c ./c4 c4.c c4.c hello.c ---- 本项目基于著名的`c4`编译器项目; 原项目是一个著名的超小规模的C语言编译器,麻雀虽小,五脏俱全。而且神奇的是它能够实现自举,即它可以用来编译它自己。 原项目由C语言实现,基于32位的机器。 本项目打算使用C++对原有项目进行重写,同时添加cmake即测试用例,期望在过程中学到一个编译器应该具备的相关功能及实现细节。 项目根路径下为原项目代码,`/cpp`路径下的文件为自己重写的C++版本。 ### 1. 编译运行: 1. 新建build文件夹并进入: ```bash mkdir build && cd build ``` 2. 执行编译命令: ```bash cmake --build . --config release ``` 生产的可执行文件存放在build目录下。 ### 2. 执行测试: 0. 清空临时文件: ```bash rm -rf build/ && mkdir build && cd build/ ``` 1. 生成cmake文件: ```bash cmake ../ ``` 2. 编译: ```bash cmake --build . ``` 3. 运行测试: ```bash ./runTests ```