LINUX.ORG.RU

На самом деле описание слегка мутноватое. Особенно в части "only one precompiled headr can be used".

И в чем коренное отличие от ccache интересно?

green ★★★★★
()

Чето аппле на опенсорс возбудился.
То иксы портанет, то с kde закорешится, а теперь вот за gcc взялся.
К чему бы это?


AVL2 ★★★★★
()

http://developer.apple.com/techpubs/macosx/DeveloperTools/gcc3/gcc/C-Dialect-...

--load-pch name

Restore the state of the compiler from the directory name before processing the other arguments. The net effect is similar to -include, but it happens much more quickly. (APPLE ONLY)

So for instance if the file myprefix.c #includes various headers that are useful to all files in your program, you can do

gcc --dump-pch foo -c myprefix.c

gcc --load-pch foo myfile1.c

gcc --load-pch foo myfile2.c

gcc --load-pch foo myfile2.c

...

pdima
()

А что значит: "(APPLE ONLY)"? Типа, все остальные пока в пролете?

InsaneHunter
()

InsaneHunter уже похоже не только.

pdima
()

А как будет решаться проблема соответствия какого-то *.h его *.h.pch? В статье по ссылке говорится, что этим будет заниматься make. Однако make лишь сравнивает даты файлов. Это может привести к не очень хорошим последствиям. Например к сокрытию кода внутри *.h.pch с целью скомпрометировать чью-то систему. Видимо необходим механизм, отличающий свои от полученых извне *.h.pch файлы.

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

То же самое применимо и к *.c -> *.o. Так что не фиг параноить.

Antichrist
()

Re:

Господа, когда я озабачивался проблемой (месяца три назад в сизифовом списке) эти патчи были уже доступны. Но только для эппловой ветки gcc, и целесообразность этих патчей для мэйнстрима вызывала сомнение у уважаемых персон.

Внимание, вопрос: кто-нибудь этим уже пользовался? И, если пользовался, то где, на десятке/G4 и/или на каком-нибудь из x86 юниксов?

AlexM ★★★★★
()

На сколько я помню, в MSVC посредством PCH еще и реализован quick complete.

lb
()

2anonymous (*) (2003-01-19 00:15:26.949):

В добавление к Antichrist - неужели вы думаете, что их будут поставлять в дистрибутиве? Это же бред. При компиляции они должны создаваться, при make clean - удаляться.

anonymous
()

> При компиляции они должны создаваться, при make clean - удаляться.

По идее должны, но только если Makefile был написан соответсвующим
образом. Большинство современных проектов никак не расчитаны на это.

anonymous
()

ИМХО, большинство современных проектов написано с использованием autoconf/automake/auto... Насколько я понимаю, не так уж сложно дописать поддержку pch.

McGray ★★
()

Гораздо интереснее, учитывают ли они, что ключики компилятора могут быть разные? Например, различные -D, различный порядок #include в разных .c тоже может приводить к разному содержимому .pch от одного и того же .h. Очевидно, что гццешники должны быть в курсе этих проблем. Честно говоря, влом оригинал читать в поисках как они решали(а решали ли?) эту проблему.

Casus ★★★★★
()

Casus: pch создается для .c а не для .h

lb
()

2Casus (*) (2003-01-20 12:30:38.942): Об этих исключениях все всё знают. Об этом написанно по ссылке.

2lb (*) (2003-01-20 14:26:06.89): pch для .h файлов.

logIN
() автор топика

2anonymous (*) (2003-01-20 00:34:32.575):

Если вы параноик, то

for i in 'find . -type f | grep pch`; do rm -f $i; done

спасет вас, если конечно же пакет потом скомпилируется... А так - ну что за дурацкие проблемы с удалением файлов по маске?

anonymous
()
Ответ на: комментарий от logIN

Аха... Значит, они таки записывают всю эту информацию в .pch... Это хорошо. А значит, распространять бинарные .pch просто нет никакого смысла. Gut.

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

2anonymous (*) (2003-01-20 21:12:20.914) Хыхы... А если у меня в проекте был файл pch.c? man find; find -type f -name '*.pch'|xargs rm -f -- уже лучше. А, чёрт, как же я забыл, тут же новая сеть для помощи неопытным юниксоидам открылась, сходите... :)

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

спасибо, мне не надо :) к тому же, man xargs, сравнить количество вызовов /bin/rm в моём и твоём случае. ещё помогает -print0 | xargs -0, но это уже для продвинутых анонимусов :)

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

угу. -print нужен только не для гнутого find, но я это к тому, что xargs-то может и не быть - казусы и такие случаются :) да и не во всех ситуациях xargs правильно отрабатывает.

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

а, извини, нолик не приметил

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