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 шт):

Автор решения: mur

Разобрался - я всё таки использовал не совместимые ключи в предкомпиляции и основной программе, потому то и не подхватывал. MinGW более строг к совпадению ключей чем clang.

Увидеть это помогло использование ключа -Winvalid-pch, который рассказывает что пошло не так при подключении предкомпилированного файла.

→ Ссылка