2013-04-15 4 views
4

Я ищу прямой способ использования предварительно скомпилированных заголовков для проекта C++ с использованием Eclipse/CDT. Материал работает при запуске из командной строки, но я ищу простой способ его интеграции в Eclipse.Eclipse CDT - Precompiled Header

Любые предложения?!

ответ

1

Из того, что я видел, в настоящее время Eclipse CDT не поддерживает предварительно скомпилированные заголовки напрямую. Я имею в виду, вы не можете установить такой вариант, как: «Для этого заголовка, скомпилируйте его». То же самое относится к заголовкам внешних библиотек вашего проекта eclipse.

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

Итак, у вас есть несколько решений:

  • Вы заменяющая команду сборки по умолчанию найденной в "Свойствах для -> C/C++ Build -> Settings Builder -> команды Построить" с помощью специального сценария, который будет изменять make-файлы, созданные затмением, а затем вызов make. Предлагается рубиновый раствор here. Обратите внимание, что он не позволяет использовать несколько предварительно скомпилированных заголовков.
  • Вы можете использовать ccache вместо GCC. Он обнаруживает, что повторение одной и той же компиляции выполняется, поэтому она немного отличается от использования предварительно скомпилированных заголовков.

EDIT:

Чтобы получить скрипт рубин работает, вы должны иметь по крайней мере один файл .cpp в том же каталоге, что и файл заголовка. В противном случае вы получите сообщение об ошибке в файле "subdir.mk".

0

Другой подход - создать исходный файл (например, pch.cpp) с измененными настройками сборки для создания предварительно скомпилированного заголовка. Он должен быть включен в сборку для создания предварительно скомпилированного заголовка, а затем исключен для создания окончательного исполняемого файла. Его необходимо временно включить, если файл заголовка изменен.

This website содержит более подробную информацию, в том числе способ создания различных предварительно скомпилированных заголовков для каждой конфигурации сборки.