Я хотел бы предварительно скомпилировать определенный большой заголовочный файл с флагами компиляции моей кодовой базы по умолчанию.Например, это будет -O3
.Однако, если я хочу включить этот PCH в цель сборки, которая не хочет каких-либо оптимизаций -O0
, тогда clang отклоняет это, поскольку у них есть конфликтующие предопределенные макросы.
"__OPTIMIZE__
предопределенный макрос был включен в файле PCH, нов настоящее время отключено "
Я вижу, что есть (была?) опция -fno-validate-pch
, которая будет делать именно то, что я хочу, но ее нет ни в Clang 6, ни в Clang 8. https://reviews.llvm.org/D24054
В конечном счете, есть ли способ сказать clang, чтобы разрешить продолжение компиляции в этом случае?Преимущество этих предварительно скомпилированных заголовков состоит в том, что они обычно могут использоваться на сотнях целей сборки, но если определенные флаги, особенно уровень оптимизации, должны быть одинаковыми, то это исключает удобство использования и удобство.
Этобыл протестирован с Clang ++ 6.0.0 на Ubuntu 16.04.