Skip to content

Instantly share code, notes, and snippets.

@BillKek
BillKek / visual c++ штуки.md
Created October 30, 2023 16:17
visual c++ штуки

#pragma execution_character_set("utf-8") иначе в cout пойдёт что-то не то.

@BillKek
BillKek / Проекты в солюшене с собственным exe-тестом.md
Created October 30, 2023 10:02
Проекты в солюшене с собственным exe-тестом

В солюшене visual c++ может быть нескольно проектов. Каждый из них может формировать тестовый (или даже прикладной) exe-файл, а так же его cpp-файлы могут быть использованы в других проектах как компоненты.

В главном cpp-файле проекта объявляем процедуру с названием проекта, а в опциях проекта прописываем:

$(ProjectName)=main

Таким образом процедура становится main только если она совпадает с именем проекта (который должен быть уникален среди идентификаторов).

@BillKek
BillKek / far manager utf-8 without signature.md
Created September 2, 2023 20:07
far manager utf-8 without signature

многие скрипты (например бат-файлы) не любят сигнатуру в начале файла:

вводим far:config

ищем Editor.AddUnicodeBOM и меняем его на false

@BillKek
BillKek / eclipse_link_cpp.md
Created August 27, 2023 10:35
eclipse link cpp
@BillKek
BillKek / eclipse and utf8.md
Last active August 2, 2023 00:06
eclipse and utf8 решение 1+2

bat файл:

chcp 65001
SET JAVA_TOOL_OPTIONS=-Dfile.encoding="UTF-8"
start "eclipse_clang" C:\eclipse\eclipse.exe
@BillKek
BillKek / автодополнения codelite 2023.md
Last active July 9, 2023 11:08
codelite автодополнение

codelite по умолчанию настроен так что clangd берёт директории из каталога "воркспейса".

чтобы брал из каталого проекта, надо изменить аргумент параметра на:

--compile-commands-dir=$(ProjectPath)

ну и workingdirector тоже $(ProjectPath)

@BillKek
BillKek / удаление флага линковки или компиляции.md
Last active July 9, 2023 11:09
удаление флага линковки или компиляции

Бывает, что флаги линковки создаются автоматически например с помощью pkg-config.

Иногда необходимо удалить некоторые, чтобы слегка модифицировать поведение программы.

В GNU среде (например Msys2) это можно сделать с помощью программы sed. Например в строке codelite можно удалить флаги -mwindows след. образом:

$(shell echo "$(shell pkg-config --libs $(PKGS)) $(shell pkg-config --libs $(PKGS)) -static" | sed "s/ -mwindows//g")

@BillKek
BillKek / make_mingw.sublime-build
Created May 22, 2023 02:00
sublime чтобы было быстро. расширение нужно именно .sublime-build
{
"shell_cmd": "mingw32-make",
"file_regex": "^(..[^:\n]*):([0-9]+):?([0-9]+)?:? (.*)$",
"working_dir": "${folder:${project_path:${file_path}}}",
"selector": "source.makefile",
"syntax": "Packages/Makefile/Make Output.sublime-syntax",
"keyfiles": ["Makefile", "makefile"],
"variants":
[
@BillKek
BillKek / UTF-16LE и bash
Created May 20, 2023 22:08
UTF-16LE и bash
сортировка UTF16 (типа UCS-2) в bash:
`< in_tmp.txt iconv -f UTF-16LE -t UTF-8 | sort | iconv -f UTF-8 -t UTF-16LE > out.txt`
с удалением одинаковых
`< in_tmp.txt iconv -f UTF-16LE -t UTF-8 | sort -u | iconv -f UTF-8 -t UTF-16LE > out.txt`
@BillKek
BillKek / GDB кодировка mingw
Last active August 1, 2023 17:13
GDB кодировка mingw
set target-wide-charset UTF-16
set target-charset UTF-8
set host-charset CP1251
set max-value-size unlimited
set print elements 10000
skip -gfi *.h
skip -gfi *.tcc
skip -rfu ^std::([a-zA-z0-9_]+)<.*>::~?\1 *\(