在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++cppx86_64-w64-mingw32-c++x86_64-w64-mingw32-g++
我想通了——我在预编译和主程序中仍然使用了不兼容的键,这就是我没有选择它的原因。MinGW对于密钥匹配比clang更严格。
使用密钥有助于查看 this
-Winvalid-pch,它告诉您连接预编译文件时出了什么问题。