Class project for C-language lessons, Prosoft Developer School 2022
Проект предназначен для тривиальной реализации структуры данных стек в учебных целях.
В проект включена статическая библиотека cstack
(файлы cstack.h и
cstack.c), написанная на C и реализующая структуру данных, и исполняемый файл
для ее тестирования (test.cpp), реализованный на C++. Процесс сборки проекта
описан в CMakeLists.txt
, в cmake/gtest.cmake
вынесена часть скрипта cmake
, отвечающая за включение в наш проект фреймворк для тестирования
Google Test.
Подробнее на wiki.
gcc >= 6.1
или clang >= 6.0.0
- компиляторы C/С++
cmake >= 3.15
- генератор скриптов сборки make/Ninja/etc
libasan
- библиотека адрес-санитайзера
libubsan
- библиотека санитайзера неопределенного поведения (UB)
Понадобится также система сборки (make/Ninja/etc) по выбору.
Хорошей практикой является разделение директории с исходными файлами и директорию для сборки проекта. Допустим, git-репозиторий находится в директории
src
:
$ tree
.
└── src
├── cmake
│ └── gtest.cmake
├── CMakeLists.txt
├── cstack.c
├── cstack.h
└── test.cpp
2 directories, 5 files
В таком случае проект собирать нужно так:
mkdir build
cd build
cmake ../src
make all
Описанная выше процедура носит исключительно рекомендательный характер.
В процессе сборки будет склонирован репозиторий Google Test, будет собрана библиотека тестирования.
В директории сборки выполнить:
ctest