По умолчанию gcc генерирует предварительно скомпилированные заголовки .gch. Однако clang ожидает заголовков .pch. При запуске scan-build с clang в другом проекте, основанном на gcc, я получаю из-за этого ошибки. Каковы различия между двумя форматами файлов, которые могут вызвать эту проблему?
Нет, но я хочу создать базу данных компиляции для cquery для проекта, который использует gcc для компиляции и, следовательно, заголовки gch. Отсюда мой вопрос. Я НЕ пытаюсь смешивать компиляторы. Как я сказал выше, я просто хочу запустить сканирование проекта.
Основное отличие состоит в том, что заголовки, предварительно скомпилированные с помощью clang, совместимы только с clang, а заголовки, предварительно скомпилированные GCC, совместимы только с GCC. Это разница, которая может вызвать вашу проблему.
Кроме того, предварительно скомпилированные заголовки совместимы только с определенной версией компилятора, а также с определенным набором параметров компиляции. Если какой-либо из упомянутых аспектов изменится, эти заголовки необходимо перекомпилировать.
Что касается решения проблемы, я не уверен, но я бы попытался просто сначала удалить все файлы gch перед запуском scan-build.
В любом случае, вы не можете смешивать компиляторы.