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.5 - генератор скриптов сборки 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