Skip to content

Class project for C-language lessons, Prosoft Developer School 2022

Notifications You must be signed in to change notification settings

Onishenko-sci/prosoft-c-stack

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

prosoft-c-stack

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

About

Class project for C-language lessons, Prosoft Developer School 2022

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 36.1%
  • C++ 33.6%
  • CMake 30.3%