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 – библиотека является составной частью этого кода и выше […]