1. Изменение файла подкачки

Изменение файла подкачки Смотрим разметку (подкачку) free -h смотрим файл подкачки (если нет — пустое пространство) swapon —show Создаем файл подкачки в 2ГБ (по сути пустой файл) sudo fallocate -l 2G /swapfile Указываем что это – файл подкачки sudo mkswap /swapfile Включаем подкачку sudo swapon /swapfile Делаем подкачку при старте Добавляем строчку “/swapfile none swap […]

Основные подходы к базам данных

Comparison of relational and non-relational //coming soon Normal forms When working with databases, you should keep in mind the general approaches defined in so-called normal forms. These approaches allow you to create databases that are minimal in size, easily readable, and scalable. Usually it is used no higher than 3 normal forces (NF) with an […]

Базовые команды MySQL

Basic commands for interacting with MySQL Show all available databases SHOW DATABASES; Create a new database CREATE DATABASE BD_Name; Delete database DROP DATABASE BD_Name; Select a database to use USE BD_Name; View available tables SHOW TABLES; Create table CREATE TABLE TB_Name1( id INT AUTO_INCREMENT PRIMARY KEY, field VARCHAR(255) NOT NULL); Table with associated foreign key […]

00. CMake — базовые сведения

Базовые сведения о CMake CMake является своего рода надстройской над системами сборки, которая позволяет создать кросс платформенное ПО Т.е. мы описываем как собрать проект на «языке» CMake и далее при попытке собрать на Windows/Linux/… он преобразует эти инструкции в понятные для данной платформы и операционной системы (например в Make для Linux) Важной особенностью в CMake […]

Build CMake without tests in command line

Сборка с использованием CMake и блокировкой отдельных частей кода при использовании командной строки Иногда при разработке ПО нет необходимости в сборке тестов и прочих подпрограмм в момент когда ПО отлаживается Ранее я комментировал эти фрагменты в CMakeLists.txt и зачастую забывал раскомментировать, сейчас продумал такой способ: CMakeLists.txt: if(Without_tests) message(«tests build off») else()#»» or FALSE => use […]

Расширенный CMakeLists

Расширенный CMakeLists Ниже представлены «расширения» для файла CMakeLists благодаря которым становится возможным собирать большие проекты Установка стандарта языка С++: set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) //—————————————————— //Добавление и работа с библиотеками //—————————————————— Поиск требуемых библиотек find_package(libName REQUIRED) find_library(libName2 NAMES libName2.a libName2 PATHS «${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}» ) Поиск/добавление путей к файлам: find_path(SYSTEMD_INCLUDE_DIRS NAMES systemd/sd-bus.h PATHS ${SYSTEMD_PKGCONF_INCLUDE_DIRS} ) Поиск/добавление путей к […]

06. CMakeCache variables через терминал

Задание переменных CMakeCache через терминал Задание переменных в кеше через терминал cmake .. -D varName:type=value или cmake .. -DvarName:type=value пример cmake .. -D varBool:BOOL=ON cmake .. -D varFilePath:FILEPATH=/home/file.txt Типы переменных (type): BOOL                         ON/OFF or TRUE/FALSE or 1/0 FILEPATH              […]

05. CMakeCache variables

Кешированные переменные CMakeCache Обычные переменные пересоздаются каждый раз при запуске cmake есть возможность хранить и использовать переменные из файла CmakeCache.txt этот файл создается однажды и может быть удален только вручную (система сборки его не уничтожает) Присвоить/Изменить значение кешированной переменной set(varName value CACHE type “What is it” [FORCE]) “What is it” – строка описание (документация) FORCE […]

04. Переменные CMakeList

Переменные CMakeList Задать переменную: set(varName stringValue) Cmake все переменные воспринимает как строки необъявленная переменная равна пустой строке «» если переменная имеет пробелы – они заменяются на ; Задать переменную пример: set(varName stringValue 123) # varName= “stringValue;123” Получить значение переменной: ${varName} message(${varName}) #выводим значение переменной Можно задавать новые переменные используя содерживое другой переменной: set(varName stringValue) # […]

08. Привязка библиотеки к цели — target_link_libraries

Таргетированная линковка (привязка библиотеки к цели) Привязка библиотеки как составной части какой-то цели, выстраивается зависимость только этой цели от этой библиотеки В чем-то похоже на наследование в языке C++ только вместо классов пересобираются библиотеки и модификаторы доступа тоже в чем-то похожи. target_link_libraries(lib_or_app PRIVATE/PUBLIC/INTERFACE libs_or_crc) App<-libA<-libB PRIVATE – библиотека является составной частью этого кода и выше […]