#pragma execution_character_set("utf-8")
иначе в cout пойдёт что-то не то.
В солюшене visual c++ может быть нескольно проектов. Каждый из них может формировать тестовый (или даже прикладной) exe-файл, а так же его cpp-файлы могут быть использованы в других проектах как компоненты.
В главном cpp-файле проекта объявляем процедуру с названием проекта, а в опциях проекта прописываем:
$(ProjectName)=main
Таким образом процедура становится main только если она совпадает с именем проекта (который должен быть уникален среди идентификаторов).
многие скрипты (например бат-файлы) не любят сигнатуру в начале файла:
вводим
far:config
ищем Editor.AddUnicodeBOM
и меняем его на false
Последовательность данных в командной строке по умолчанию может приводить к ошибкам линковки с помощью g++. Перемещение ${INPUTS}
на первое место зачастую решает проблему:
${COMMAND} ${INPUTS} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${EXTRA_FLAGS}
bat файл:
chcp 65001
SET JAVA_TOOL_OPTIONS=-Dfile.encoding="UTF-8"
start "eclipse_clang" C:\eclipse\eclipse.exe
codelite
по умолчанию настроен так
что clangd
берёт директории из каталога "воркспейса".
чтобы брал из каталого проекта, надо изменить аргумент параметра на:
--compile-commands-dir=$(ProjectPath)
ну и workingdirector
тоже $(ProjectPath)
Бывает, что флаги линковки создаются автоматически например с помощью pkg-config
.
Иногда необходимо удалить некоторые, чтобы слегка модифицировать поведение программы.
В GNU
среде (например Msys2
) это можно сделать с помощью программы sed.
Например в строке codelite можно удалить флаги -mwindows
след. образом:
$(shell echo "$(shell pkg-config --libs $(PKGS)) $(shell pkg-config --libs $(PKGS)) -static" | sed "s/ -mwindows//g")
{ | |
"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": | |
[ |
сортировка 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` |
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 *\( |