虚拟机
用VMware Workstation 17 Player,安装centos7,安装gcc等开发工具
设置虚拟机的共享文件夹,将win10下下载的chibicc拷贝到/home/a下
直接make编译
用ip addr查询得到虚拟机的ip地址,后面vs远程开放时使用。
vs设置
vs毕竟是号称宇宙第一ide,虽然目前支持linux远程开发还有些bug,但多趟几个坑,基本都能用了。个人习惯了vs,也比较推荐。
在本地工程目录加一个CMakeLists.txt文件,内容如下:
cmake_minimum_required(VERSION 3.10)
project(chibicc)
# Set C standard and compilation flags
set(CMAKE_C_STANDARD 11)
add_compile_options(-g -fno-common -Wall -Wno-switch)
# Define source files
set(SOURCE_FILES
tokenize.c
unicode.c
hashmap.c
type.c
main.c
parse.c
codegen.c
preprocess.c
strings.c
)
# Create executable
add_executable(chibicc ${
SOURCE_FILES})
以上设置完,就可以在win10 vs下进行本地虚拟机的linux c编译器代码的单步debug了。
vs编译输出路径在~/.vs/chibicc …/out/… 目录下。
测试使用chibicc
./chibicc --help 这个输出指示没问题,编译错误是test下的.c测试代码不全导致的。
以alignof.c为例,添加assert函数,修正如下:
#include "test.h"
//add start
//#include "common"
void assert(int expected, int actual, char* code) {
if (expected == actual) {
printf("%s => %d\n", code, actual);
}
else {
printf("%s => %d expected but got %d\n", code, expected, actual);
exit(1);
}
}
//add end
int _Alignas(512) g1;
......
./chibicc -S …/…/…/src/test/alignof.c 可以输出asm文件。
./chibicc -c …/…/…/src/test/alignof.c 可以输出.o文件
./chibicc …/…/…/src/test/alignof.c 可以输出a.out文件
./a.out文件执行正常,chibicc编译运行测试通过。