Compare commits
24 Commits
adoc
...
321e48c500
Author | SHA1 | Date | |
---|---|---|---|
321e48c500 | |||
22067a2a3d | |||
494c9f31d6 | |||
2bcf387ba4 | |||
5bf5a20624 | |||
fff4e996d2 | |||
218f22c8d2 | |||
d931b5aaea | |||
ec16a3a380 | |||
c41683d9e2 | |||
2abd41f429 | |||
f0cba8e7f6 | |||
8e1b48e868 | |||
d3fe32a96b | |||
62ab8db450 | |||
2af67616c8 | |||
d07e6a66f8 | |||
51adf6eb5a | |||
007afda3d1 | |||
3355f9185e | |||
1e5b6aa485 | |||
679bf869e8 | |||
1aaacb1df7 | |||
1068f502bb |
4
Makefile
4
Makefile
@ -1,8 +1,8 @@
|
|||||||
build:
|
build:
|
||||||
pelican -s pelicanconf.py
|
pelican --ignore-cache -s pelicanconf.py
|
||||||
|
|
||||||
web:
|
web:
|
||||||
pelican -s pelicanconf-web.py
|
pelican --ignore-cache -s pelicanconf-web.py
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf cache __pycache__
|
rm -rf cache __pycache__
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# -*- coding: utf-8 -*- #
|
# -*- coding: utf-8 -*- #
|
||||||
from __future__ import unicode_literals
|
|
||||||
import os
|
import os
|
||||||
|
|
||||||
class i18n(object):
|
class i18n(object):
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# -*- coding: utf-8 -*- #
|
# -*- coding: utf-8 -*- #
|
||||||
from __future__ import unicode_literals
|
|
||||||
import os
|
import os
|
||||||
|
|
||||||
class i18n(object):
|
class i18n(object):
|
||||||
@ -13,7 +12,7 @@ class i18n(object):
|
|||||||
LANGUAGES = ['ru']
|
LANGUAGES = ['ru']
|
||||||
NEWSTYLE = True
|
NEWSTYLE = True
|
||||||
|
|
||||||
__name__ = 'i18n'
|
__name__ = 'pelicanconf.i18n'
|
||||||
|
|
||||||
def register(self):
|
def register(self):
|
||||||
from pelican.signals import generator_init
|
from pelican.signals import generator_init
|
||||||
|
File diff suppressed because it is too large
Load Diff
45
wiki/Prog/Development/Настройка QtCreator.adoc
Normal file
45
wiki/Prog/Development/Настройка QtCreator.adoc
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
= Настройка Qt Creator
|
||||||
|
:title-separator: {sp}|
|
||||||
|
:category: Linux/Программы
|
||||||
|
:tags: Linux, Qt, QtCreator, C++,
|
||||||
|
|
||||||
|
== Плагины
|
||||||
|
|
||||||
|
image::qtcreator-setup/qtcreator20.png[qtcreator20]
|
||||||
|
|
||||||
|
image::qtcreator-setup/qtcreator21.png[qtcreator21]
|
||||||
|
|
||||||
|
image::qtcreator-setup/qtcreator22.png[qtcreator22]
|
||||||
|
|
||||||
|
== Среда
|
||||||
|
|
||||||
|
image::qtcreator-setup/qtcreator41.png[qtcreator41]
|
||||||
|
|
||||||
|
== Редактор
|
||||||
|
|
||||||
|
image::qtcreator-setup/qtcreator42.png[qtcreator42]
|
||||||
|
|
||||||
|
== C++
|
||||||
|
|
||||||
|
image::qtcreator-setup/qtcreator51.png[qtcreator51]
|
||||||
|
|
||||||
|
== Стилизатор
|
||||||
|
|
||||||
|
image::qtcreator-setup/qtcreator55.png[qtcreator55]
|
||||||
|
|
||||||
|
== Сборка и запуск
|
||||||
|
|
||||||
|
image::qtcreator-setup/qtcreator61.png[qtcreator61]
|
||||||
|
|
||||||
|
== To-Do
|
||||||
|
|
||||||
|
image::qtcreator-setup/qtcreator67.png[qtcreator67]
|
||||||
|
|
||||||
|
== Импорт проекта на CMake
|
||||||
|
|
||||||
|
image::qtcreator-setup/qtcreator74.png[qtcreator74]
|
||||||
|
|
||||||
|
== Сборка
|
||||||
|
|
||||||
|
image::qtcreator-setup/qtcreator81.png[qtcreator81]
|
||||||
|
|
@ -0,0 +1,38 @@
|
|||||||
|
= Программный проект и иерархия каталогов
|
||||||
|
:title-separator: {sp}|
|
||||||
|
:category: Программирование
|
||||||
|
:tags: Linux, программирование, cmake
|
||||||
|
|
||||||
|
Для операционных систем типа Linux принят стандарт
|
||||||
|
https://ru.wikipedia.org/wiki/FHS[FHS] («стандарт иерархии файловой
|
||||||
|
системы»), унифицирующий местонахождение файлов и каталогов с общим
|
||||||
|
назначением в файловой системе. Полная текущая версия стандарта
|
||||||
|
находится http://refspecs.linuxfoundation.org/fhs.shtml[здесь].
|
||||||
|
|
||||||
|
В соответствии с данным стандартом, а также принятыми в ведущих
|
||||||
|
дистрибутивах правилами размещения исполняемых файлов в каталогах
|
||||||
|
пользователей, можно выделить следующие типы расположения:
|
||||||
|
|
||||||
|
* системная иерархия в каталоге `/usr` используется для установки
|
||||||
|
бинарных пакетов для данного дистрибутива;
|
||||||
|
|
||||||
|
* системная иерархия в каталоге `/usr/local` используется для установки
|
||||||
|
программного обеспечения системным администратором без использования
|
||||||
|
пакетов (не рекомендуется для использования из-за проблем поддержки
|
||||||
|
в актуальном состоянии);
|
||||||
|
|
||||||
|
* системная иерархия в каталоге `/opt` используется для установки
|
||||||
|
стороннего программного обеспечения. В рамках данной иерархии
|
||||||
|
предполагается, что каждый программный продукт располагается в
|
||||||
|
собственном каталоге. При таком типе сборки обычно используются
|
||||||
|
дополнительные методы (статическая компоновка, включение в состав
|
||||||
|
пакета своего набора динамических библиотек) для обеспечения работы
|
||||||
|
пакета в операционных систем с отличающимся составом библиотек
|
||||||
|
и другим циклом обновления;
|
||||||
|
|
||||||
|
* системная иерархия в домашнем каталоге пользователя не имеет
|
||||||
|
определённого стандарта, обычно производители дистрибутивов
|
||||||
|
предлагают использовать для исполняемых файлов каталоги
|
||||||
|
`$HOME/bin` или `$HOME/.local/bin`.
|
||||||
|
|
||||||
|
|
@ -13,14 +13,14 @@
|
|||||||
|
|
||||||
[source,sh]
|
[source,sh]
|
||||||
----
|
----
|
||||||
sudo apt-get install clang-tidy-6.0
|
sudo apt-get install clang-tidy-10
|
||||||
----
|
----
|
||||||
|
|
||||||
Использование:
|
Использование:
|
||||||
|
|
||||||
[source,sh]
|
[source,sh]
|
||||||
----
|
----
|
||||||
cmake "-DCMAKE_CXX_CLANG_TIDY=/usr/bin/clang-tidy-6.0" path/to/source
|
cmake "-DCMAKE_CXX_CLANG_TIDY=/usr/bin/clang-tidy-10" path/to/source
|
||||||
----
|
----
|
||||||
|
|
||||||
В каталоге проекта нужно создать файл `.clang-tidy` в формате YAML со
|
В каталоге проекта нужно создать файл `.clang-tidy` в формате YAML со
|
||||||
@ -30,12 +30,25 @@ cmake "-DCMAKE_CXX_CLANG_TIDY=/usr/bin/clang-tidy-6.0" path/to/source
|
|||||||
----
|
----
|
||||||
---
|
---
|
||||||
Checks: '-*,
|
Checks: '-*,
|
||||||
clang-diagnostic-*,
|
bugprone-*,
|
||||||
readability-*,
|
clang-analyzer-*,
|
||||||
modernize-*,
|
|
||||||
cppcoreguidelines-*,
|
cppcoreguidelines-*,
|
||||||
google-*,
|
google-*,
|
||||||
bugprone-*'
|
llvm-*,
|
||||||
|
misc-*,
|
||||||
|
modernize-*,
|
||||||
|
readability-*,
|
||||||
|
performance-*,
|
||||||
|
portability-*,
|
||||||
|
-cppcoreguidelines-owning-memory,
|
||||||
|
-cppcoreguidelines-avoid-magic-numbers,
|
||||||
|
-cppcoreguidelines-pro-bounds-array-to-pointer-decay,
|
||||||
|
-readability-magic-numbers,
|
||||||
|
-readability-else-after-return,
|
||||||
|
-modernize-use-trailing-return-type,
|
||||||
|
-modernize-avoid-c-arrays,
|
||||||
|
-performance-no-automatic-move,
|
||||||
|
'
|
||||||
CheckOptions:
|
CheckOptions:
|
||||||
- key: readability-identifier-naming.ClassCase
|
- key: readability-identifier-naming.ClassCase
|
||||||
value: CamelCase
|
value: CamelCase
|
||||||
@ -124,7 +137,7 @@ cmake -DCMAKE_LINK_WHAT_YOU_USE=TRUE ..
|
|||||||
|
|
||||||
[source,sh]
|
[source,sh]
|
||||||
----
|
----
|
||||||
sudo apt-get install clazy clang-6.0
|
sudo apt-get install clazy clang-9
|
||||||
----
|
----
|
||||||
|
|
||||||
Использование:
|
Использование:
|
||||||
@ -132,7 +145,6 @@ sudo apt-get install clazy clang-6.0
|
|||||||
[source,sh]
|
[source,sh]
|
||||||
----
|
----
|
||||||
CLAZY_CHECKS=level2 cmake -DCMAKE_CXX_COMPILER=clazy ..
|
CLAZY_CHECKS=level2 cmake -DCMAKE_CXX_COMPILER=clazy ..
|
||||||
CLANGXX=clang++-6.0 make
|
CLANGXX=clang++-9 make
|
||||||
----
|
----
|
||||||
|
|
||||||
=== PVS-Studio
|
|
||||||
|
@ -3,15 +3,35 @@
|
|||||||
:category: Программирование
|
:category: Программирование
|
||||||
:tags: программирование, git,
|
:tags: программирование, git,
|
||||||
|
|
||||||
Если у подмодуля, находящегося в каталоге `thirdparty/example` нужно
|
Если у подмодулей необходимо заменить адрес синхронизации и/или
|
||||||
заменить адрес синхронизации и имя используемой ветки, то в каталоге с
|
имя используемой ветки, то можно отредактировать в корневом
|
||||||
файлом `.gitmodules`, в котором содержится информация об этом подмодуле,
|
каталоге проекта файл `.gitmodules` и выполнить данный скрипт:
|
||||||
нужно выполнить команды:
|
|
||||||
|
|
||||||
[source,sh]
|
[source,sh]
|
||||||
----
|
----
|
||||||
git config --file=.gitmodules submodule.thirdparty/example.url https://github.com/username/ABC.git
|
#!/bin/bash
|
||||||
git config --file=.gitmodules submodule.thirdparty/example.branch new-branch-name
|
|
||||||
git submodule sync --recursive
|
# Замена адресов для подмодулей:
|
||||||
git submodule update --init --recursive --remote
|
# 1. Отредактировать файл .gitmodules
|
||||||
|
# 2. Запустить этот скрипт
|
||||||
|
#
|
||||||
|
# Параметры:
|
||||||
|
# - имя подмодуля (если присутствует, то замена
|
||||||
|
# адреса производится только для данного подмодуля)
|
||||||
|
|
||||||
|
M="#"
|
||||||
|
[ ! -z $1 ] && M="$1"
|
||||||
|
|
||||||
|
cat .gitmodules | while read s; do
|
||||||
|
s=${s/\*/}
|
||||||
|
s=${s/path = /}
|
||||||
|
if [ "$M" = "#" -o "x$M" = "x$s" ]; then
|
||||||
|
rm -rf .git/modules/$s
|
||||||
|
rm -rf $s
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
git submodule sync
|
||||||
|
git submodule update
|
||||||
----
|
----
|
||||||
|
|
||||||
|
@ -137,7 +137,7 @@ participant remote as "Удалённый репозиторий\n(remote reposi
|
|||||||
[-> workspace : <font color=red>Начало работы</font>
|
[-> workspace : <font color=red>Начало работы</font>
|
||||||
activate workspace
|
activate workspace
|
||||||
remote -> local : <font color=red>Получение изменений с сервера</font>\n<b>git fetch</b>
|
remote -> local : <font color=red>Получение изменений с сервера</font>\n<b>git fetch</b>
|
||||||
remote -> local : <font color=red>Обновление подмодулей</font>\n<b>git submodule update --remote</b>
|
remote -> local : <font color=red>Обновление подмодулей</font>\n<b>git submodule update --recursive --init</b>
|
||||||
workspace <-> local : <font color=red>Просмотр информации</font>\n<b>git status</b>
|
workspace <-> local : <font color=red>Просмотр информации</font>\n<b>git status</b>
|
||||||
workspace <-> local : <font color=red>Переход на ветку master</font>\n<b>git checkout master</b>
|
workspace <-> local : <font color=red>Переход на ветку master</font>\n<b>git checkout master</b>
|
||||||
local -> workspace : <font color=red>Слияние с удалённой веткой</font>\n<b>git merge origin/master</b>
|
local -> workspace : <font color=red>Слияние с удалённой веткой</font>\n<b>git merge origin/master</b>
|
||||||
|
@ -19,11 +19,16 @@ CREATE TABLE example (
|
|||||||
----
|
----
|
||||||
const char cart[] = {0x04, 0x43, 0x00, 0x9A};
|
const char cart[] = {0x04, 0x43, 0x00, 0x9A};
|
||||||
QByteArray binDataArray(QByteArray::fromRawData(cart, 4));
|
QByteArray binDataArray(QByteArray::fromRawData(cart, 4));
|
||||||
QSqlQuery query;
|
QSqlQuery query1;
|
||||||
query.prepare(QString("INSERT INTO example (id, bin_data) VALUES(:id, :bin_data)");
|
query1.prepare(QString("INSERT INTO example (id, bin_data) VALUES(:id, :bin_data)");
|
||||||
query.bindValue(":id", 10, QSql::In);
|
query1.bindValue(":id", 10, QSql::In);
|
||||||
query.bindValue(":bin_data", binDataArray, QSql::In | QSql::Binary);
|
query1.bindValue(":bin_data", binDataArray, QSql::In | QSql::Binary);
|
||||||
query.exec();
|
query1.exec();
|
||||||
|
|
||||||
|
QSqlQuery query2;
|
||||||
|
query2.exec(QString("INSERT INTO files VALUES(%1, %2);")
|
||||||
|
.arg(18)
|
||||||
|
.arg(db.driver()->formatValue(dataField)));
|
||||||
----
|
----
|
||||||
|
|
||||||
Чтение данных:
|
Чтение данных:
|
||||||
|
Reference in New Issue
Block a user