LINUX.ORG.RU

Кому-то удавалось сгенерировать PCH с помощью clang?

 ,


0

3

Пишу вот так

$ clang++ -cc1 -emit-pch `pkg-config --cflags gtkmm-3.0` canvas.h -o canvas.h.pch

Валится

In file included from canvas.h:22:
In file included from /usr/include/gtkmm-3.0/gtkmm.h:87:
In file included from /usr/include/glibmm-2.4/glibmm.h:87:
In file included from /usr/include/glibmm-2.4/glibmm/thread.h:46:
In file included from /usr/include/glib-2.0/glib.h:30:
In file included from /usr/include/glib-2.0/glib/galloca.h:32:
In file included from /usr/include/glib-2.0/glib/gtypes.h:32:
In file included from /usr/lib64/glib-2.0/include/glibconfig.h:9:
/usr/include/glib-2.0/glib/gmacros.h:38:10: fatal error: 'stddef.h' file not found
#include <stddef.h>
         ^
1 error generated.

Пробую разные способы, но короче суть в том что ему похоже нужно перечислить все -I ключи, включа дефолтные. Он без параметров не находит даже iostream/stdio.h. На этом беда не заканчивается, похоже есть уйма флагов, которые он тоже из дефолта не берет.

Гугл молчит. Решил обратиться к когорте экспертов ЛОРа перед тем как пойду по легкому пути - Stackoverflow. Свое роднее.

★★★★★

Последнее исправление: vertexua (всего исправлений: 1)

Просто clang++ -c надо делать, никакой -cc1 магии

-cc1 это внутренний интерфейс драйвера, все фичи, нужные обычным пользователям, доступны и без него

annulen ★★★★★
()
Ответ на: комментарий от annulen

З.Ы. Запусти компилятор с опцией -### и сразу увидишь, почему вылетает ошибка компилции

annulen ★★★★★
()
Ответ на: комментарий от annulen
$ clang++  -emit-pch `pkg-config --cflags gtkmm-3.0` -c canvas.h -o canvas.h.pch
clang: warning: treating 'c-header' input as 'c++-header' when in C++ mode, this behavior is deprecated
clang: warning: argument unused during compilation: '-emit-pch
vertexua ★★★★★
() автор топика
Ответ на: комментарий от vertexua

Оно скомпилировалось, это предупреждения.

Флаг -emit-pch лишний, второй warning можно проигнорить, либо, если хочется, чтобы все было совсем чисто, добавить -x c++-header

annulen ★★★★★
()
Ответ на: комментарий от vertexua

Ну так зачем clang++, когда просто clang?

anonymous
()

как-то так работает

clang++ -pipe -O2 -Wall -W -fPIE -x c++-header -c StdAfx.h -o c++.pch  

nikitos ★★★
()

в проекте beignet генерируется pch.

powerguy ★★★
()
Ответ на: комментарий от annulen

Мда, сработало. Меня отвлекли мануалы clang

vertexua ★★★★★
() автор топика

Всем спасибо

vertexua ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.