MinGW как использовать предкомпилированные заголовки?
В clang предкомпилированные заголовки создаются и используются:
clang++ -xc++-header stdafx.hpp -o stdafx.pch -std=c++23 -O2
clang++ -include-pch stdafx.pch main.cpp -Wall -std=c++23 -O2
При этом ускорение компиляции очень заметно.
Но MinGW ругается на команду: -include-pch
.
В gcc предкомпилированные заголовки создаются:
g++ -x c++-header -o stdafx.hpp.gch -c stdafx.hpp -std=c++23 -O2
и для использования вроде как достаточно чтобы рядом с stdafx.hpp
находился stdafx.hpp.gch
скомпилированный с совместимыми ключами.
Но в MinGW я не вижу никакого ускорения компиляции (в clang оно очень явное).
Чего ему не хватает?
MinGW взят отсюда, вариант: x86_64-13.2.0-release-posix-seh-msvcrt-rt_v11-rev0.
Ещё вопрос: в каталоге mingw64\bin
есть: c++
, g++
, cpp
, x86_64-w64-mingw32-c++
, x86_64-w64-mingw32-g++
, зачем их так много и чем они отличаются?
Ответы (1 шт):
Разобрался - я всё таки использовал не совместимые ключи в предкомпиляции и основной программе, потому то и не подхватывал. MinGW более строг к совпадению ключей чем clang.
Увидеть это помогло использование ключа -Winvalid-pch
, который рассказывает что пошло не так при подключении предкомпилированного файла.