Советы по кодированию по вторникам — это очень короткие посты о различных лакомых кусочках, в основном из C++, но также и из других языков программирования, которые я использую. Вы также можете следить за хэштегом #TuesdayCodingTips на Mastodon и Linkedin.
Вы используете CMake и хотите улучшить время компиляции C++? Существует метод, называемый предварительно скомпилированными заголовками. Обычно это довольно сложно настроить, MSVC имеет тенденцию заставлять вас включать предварительно скомпилированный заголовок в каждый отдельный файл .cpp
.
С CMake вы можете использовать одну команду, чтобы мгновенно увеличить время компиляции с нулевой инвазивностью. В своем хобби-проекте я сократил время компиляции с 3 минут 30 секунд до всего 30 секунд (в однопоточном CI я сократил время с 7 до 3 30 секунд).
# PROJECT_NAME refers to target that was used with # add_library or add_executable command target_precompile_headers ( ${PROJECT_NAME} PRIVATE <vector> <format> <map> <unordered_map> <array> <optional> <expected> <fstream> <filesystem> <functional> <concepts> <memory> <string> <cstdint> <DGM/dgm.hpp> <TGUI/tgui.hpp> <json.hpp> )
Просто не забудьте включить только те заголовки, которые не меняются часто, предположительно никогда. Хорошими кандидатами являются заголовки std
и сторонние зависимости только от заголовков.