This repository has been archived by the owner on Dec 11, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 39
写在前面
15279726390 edited this page Mar 11, 2023
·
2 revisions
编译原理实验开始。
两种可选方案:
- WSL
- Docker
Debian/Ubuntu
安装依赖
sudo apt-get install -y --no-install-recommends \
clang llvm-dev zlib1g-dev lld flex bison \
cmake python3 ninja-build git
下载实验项目
git clone https://github.com/arcsysu/SYsU-lang
cd SYsU-lang
编译安装,默认安装路径是 ~/sysu
# `${CMAKE_C_COMPILER}` 仅用于编译 `.sysu.c`
# 非 SYsU 语言的代码都将直接/间接使用 `${CMAKE_CXX_COMPILER}` 编译(后缀为 `.cc`)
rm -rf $HOME/sysu
cmake -G Ninja \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCMAKE_C_COMPILER=clang \
-DCMAKE_CXX_COMPILER=clang++ \
-DCMAKE_INSTALL_PREFIX=$HOME/sysu \
-DCMAKE_PREFIX_PATH="$(llvm-config --cmakedir)" \
-DCPACK_SOURCE_IGNORE_FILES=".git/;tester/third_party/" \
-B $HOME/sysu/build
cmake --build $HOME/sysu/build
cmake --build $HOME/sysu/build -t install
检查各实验的得分
CTEST_OUTPUT_ON_FAILURE=1 cmake --build $HOME/sysu/build -t test
打包源代码以提交作业
cmake --build $HOME/sysu/build -t package_source
检查编译结果
( export PATH=$HOME/sysu/bin:$PATH \
CPATH=$HOME/sysu/include:$CPATH \
LIBRARY_PATH=$HOME/sysu/lib:$LIBRARY_PATH \
LD_LIBRARY_PATH=$HOME/sysu/lib:$LD_LIBRARY_PATH &&
sysu-compiler -S -o a.S tester/functional/000_main.sysu.c &&
clang -O0 -lsysy -lsysu -o a.out a.S &&
./a.out ;
echo $? &&
rm -f a.S a.out )
docker pull wukan0621/sysu-lang
docker run \
--name sysu-lang \
-v "$PWD/workspace:/workspace" \
-it wukan0621/sysu-lang \
bash
# 随后可以在宿主机当前目录的 workspace/SYsU-lang 目录下开发