Минимальный пример:
// file: main.cpp
#include "pch.h"
int main()
{
std::cout << "test" << std::endl;
return 0;
}
-
// file: pch.h
#include <iostream>
Работает нормально и, как и ожидалось, если я скомпилирую это с
g++ pch.h
g++ main.cpp -Winvalid-pch
Однако, как только я изменю последнюю строку на:
g++ main.cpp -fopenmp -Winvalid-pch
использование предварительно скомпилированного заголовка отключено:
warning: pch.h.gch: not used because `_REENTRANT' is defined [-Winvalid-pch]
Как я могу по-прежнему использовать предварительно скомпилированные заголовки при соединении с OpenMP? Почему определение _REENTRANT вообще конфликтует с использованием предварительно скомпилированного заголовка?