АнглийскийФранцузскийИспанский

Ad


Значок OnWorks

ccache-swig2.0 - Онлайн в облаке

Запустите ccache-swig2.0 в бесплатном хостинг-провайдере OnWorks через Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS

Это команда ccache-swig2.0, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.

ПРОГРАММА:

ИМЯ


ccache-swig - быстрый кеш компилятора

СИНТАКСИС


ccache-swig [ОПЦИЯ]

ccache-swig [ОПЦИИ КОМПИЛЯТОРА]

[ОПЦИИ КОМПИЛЯТОРА]

ОПИСАНИЕ


ccache-swig - это кеш компилятора. Ускоряет повторную компиляцию кода C / C ++ / SWIG за счет кеширования.
предыдущие компиляции и определение того, когда та же компиляция выполняется снова. ccache-swig это
ccache плюс поддержка SWIG. ccache и ccache-swig взаимозаменяемы в этом
документа.

ДОПОЛНИТЕЛЬНЫЕ УСЛУГИ, НЕ ВКЛЮЧЕННЫЕ В ПАКЕТ РЕЗЮМЕ


Вот краткое изложение параметров ccache-swig.

-s показать сводку статистики
-z нулевая статистика
-c запустить очистку кеша
-C полностью очистить кеш
-F установить максимальное количество файлов в кеше
-M установить максимальный размер кеша (используйте G, M или K)
-h эта страница справки
-V распечатать номер версии

ДОПОЛНИТЕЛЬНЫЕ УСЛУГИ, НЕ ВКЛЮЧЕННЫЕ В ПАКЕТ


Эти параметры применяются только тогда, когда вы вызываете ccache как «ccache-swig». При вызове как
компилятор ни одна из этих опций не применима. В этом случае применяются ваши обычные параметры компилятора и
вам следует обратиться к документации вашего компилятора.

-h Распечатайте страницу сводной информации о параметрах

-s Распечатайте сводку текущей статистики для кеша. Статистика хранится
распространяются по подкаталогам кеша. Использование "ccache-swig -s" добавляет
статистика по всем подкаталогам и вывод итогов.

-z Обнулить статистику кеша.

-V Распечатайте номер версии ccache

-c Очистите кеш и повторно рассчитайте общее количество и размер файлов кеша. Обычно
Параметр -c не требуется, поскольку ccache сохраняет кеш ниже указанного
ограничения во время выполнения и поддерживает актуальность статистики при каждой компиляции. Этот вариант
в основном полезно, если вы вручную изменяете содержимое кеша или считаете, что кеш
статистика размеров может быть неточной.

-C Очистите весь кеш, удалив все кешированные файлы.

-F
Это устанавливает максимальное количество файлов, разрешенных в кеше. Значение сохраняется
внутри каталога кэша и применяется ко всем будущим компиляциям. Из-за способа
значение сохраняется, используемое фактическое значение всегда округляется в меньшую сторону до ближайшего
кратно 16.

-M
Это устанавливает максимальный размер кеша. Можно указать значение в гигабайтах, мегабайтах
или килобайт, добавив к значению буквы G, M или K. По умолчанию - гигабайты. В
Фактическое сохраненное значение округляется до ближайшего значения, кратного 16 килобайтам.

МОНТАЖ


Есть два способа использовать ccache. Вы можете либо префикс своих команд компиляции с помощью
"ccache-swig" или вы можете создать символическую ссылку между ccache-swig и именами ваших
компиляторы. Первый способ наиболее удобен, если вы просто хотите опробовать ccache или хотите
использовать его для каких-то конкретных проектов. Второй метод наиболее полезен, когда вы хотите
использовать ccache для всех ваших компиляций.

Чтобы установить для использования первым методом, просто скопируйте ccache-swig куда-нибудь на свой путь.

Для установки по второму способу сделайте что-то вроде этого:

cp ccache-swig / USR / местные / бен /
ln -s / usr / местный / bin / ccache-swig / usr / местный / bin / gcc
ln -s / usr / местный / bin / ccache-swig / usr / местный / bin / g ++
ln -s / usr / местный / bin / ccache-swig / usr / местный / bin / cc
ln -s / usr / местный / bin / ccache-swig / usr / местный / bin / swig

Это будет работать до тех пор, пока / USR / местные / бен стоит перед путем к gcc (который обычно находится в
/ USR / бен). После установки вы можете запустить "which gcc", чтобы убедиться, что
ссылка уже используется.

Примечание! Не используйте жесткую ссылку, используйте символическую ссылку. Жесткая ссылка вызовет "интересный"
проблемы.

ЭКСТРА ДОПОЛНИТЕЛЬНЫЕ УСЛУГИ, НЕ ВКЛЮЧЕННЫЕ В ПАКЕТ


При запуске в качестве внешнего интерфейса компилятора ccache обычно принимает те же параметры командной строки.
в качестве компилятора, который вы используете. Единственное исключение - опция --ccache-skip.
Этот параметр можно использовать, чтобы сообщить ccache, что следующий параметр определенно не является вводом.
имя файла, и его следует передать компилятору как есть.

Причина, по которой это может быть важно, заключается в том, что ccache действительно должен анализировать командную строку и
определить, что является входным именем файла и что является параметром компилятора, поскольку ему нужны входные данные
filename, чтобы определить имя результирующего объектного файла (среди прочего). В
эвристический ccache использует в этом синтаксическом анализе, что любая строка в командной строке, которая существует как
файл рассматривается как имя входного файла (обычно это файл C). Используя --ccache-skip, вы можете
заставить параметр не обрабатываться как имя входного файла и вместо этого передаваться в
компилятор как параметр командной строки.

ОКРУЖАЮЩАЯ СРЕДА ПЕРЕМЕННЫЕ


ccache использует ряд переменных среды для управления работой. В большинстве случаев вы
ничего из этого не понадобится, так как значения по умолчанию будут в порядке.

CCACHE_DIR
переменная среды CCACHE_DIR указывает, где ccache будет хранить свой кэш
вывод компилятора. По умолчанию это «$ HOME / .ccache».

CCACHE_TEMPDIR
переменная среды CCACHE_TEMPDIR указывает, куда ccache поместит временные
файлы. Значение по умолчанию такое же, как CCACHE_DIR. Обратите внимание, что путь CCACHE_TEMPDIR
должен находиться в той же файловой системе, что и путь CCACHE_DIR, чтобы переименовывать файлы
между двумя каталогами может работать.

CCACHE_LOGFILE
Если вы установите переменную среды CCACHE_LOGFILE, то ccache запишет некоторый журнал
информация о попаданиях и промахах в кеш в этом файле. Это полезно для отслеживания
проблемы.

CCACHE_VERBOSE
Если вы установите переменную среды CCACHE_VERBOSE, то ccache будет отображаться на
stdout все вызовы компилятора, которые он делает. Это может быть полезно для отладки
неожиданные проблемы.

CCACHE_PATH
Вы можете дополнительно установить CCACHE_PATH на путь, разделенный двоеточиями, где ccache будет искать
для настоящих компиляторов. Если вы этого не сделаете, ccache будет искать первый
исполняемый файл, соответствующий имени компилятора в обычном PATH, который не является символической ссылкой
кэшировать себя.

CCACHE_CC
Вы можете дополнительно установить CCACHE_CC, чтобы принудительно использовать имя компилятора. если ты
не делайте этого, тогда ccache выполнит это из командной строки.

CCACHE_PREFIX
Эта опция добавляет префикс в командную строку, которую ccache запускает при вызове
компилятор. Также см. Раздел ниже об использовании ccache с distcc.

CCACHE_DISABLE
Если вы установите переменную среды CCACHE_DISABLE, тогда ccache просто вызовет
настоящий компилятор, полностью обходящий кеш.

CCACHE_READONLY
переменная среды CCACHE_READONLY сообщает ccache, что нужно попытаться использовать существующие
кешированные объектные файлы, но не пытаться добавить что-нибудь новое в кеш. Если ты
используя это, потому что ваш CCACHE_DIR доступен только для чтения, тогда вы можете обнаружить, что вы также
необходимо установить CCACHE_TEMPDIR, иначе ccache не сможет создать временный
файлы.

CCACHE_CPP2
Если вы установите переменную среды CCACHE_CPP2, то ccache не будет использовать
оптимизация избежания второго вызова препроцессора путем компиляции
предварительно обработанный вывод, который использовался для поиска хэша в случае кеша
Мисс. Это в первую очередь вариант отладки, хотя возможно, что некоторые
необычные компиляторы будут иметь проблемы с используемыми промежуточными расширениями файлов
в этой оптимизации, и в этом случае эта опция может позволить использовать ccache.

CCACHE_NOCOMPRESS
Если вы установите переменную среды CCACHE_NOCOMPRESS, то сжатия нет
используется для файлов, которые попадают в кеш. Однако этот параметр не влияет на то, как
файлы извлекаются из кеша, сжатые результаты по-прежнему можно будет использовать.

CCACHE_NOSTATS
Если вы установите переменную среды CCACHE_NOSTATS, то ccache не будет обновлять
файлы статистики при каждой компиляции.

CCACHE_NLEVELS
Переменная среды CCACHE_NLEVELS позволяет выбрать количество уровней
хеша в каталоге кеша. По умолчанию - 2. Минимальное - 1, максимальное -
это 8.

CCACHE_HARDLINK
Если вы установите переменную среды CCACHE_HARDLINK, тогда ccache попытается использовать
жесткие ссылки из каталога кеша при создании вывода компилятора, а не
используя копию файла. Использование жестких ссылок выполняется быстрее, но может сбивать с толку такие программы, как make.
которые зависят от времени модификации. Жесткие ссылки никогда не делаются для сжатого кеша
файлы.

CCACHE_RECACHE
Это заставляет ccache не использовать кешированные результаты, даже если он их находит. Новый
результаты по-прежнему кэшируются, но существующие записи кэша игнорируются.

CCACHE_UMASK
Это устанавливает umask для ccache и всех дочерних процессов (например, компилятора). Этот
в основном полезен, когда вы хотите поделиться своим кешем с другими пользователями. Обратите внимание, что это
также влияет на права доступа к файлам, установленные для объектных файлов, созданных из вашего
сборники.

CCACHE_HASHDIR
Это сообщает ccache о необходимости хеширования текущего рабочего каталога при вычислении хеша.
это используется для различения двух компиляций. Это предотвращает проблемы с хранилищем.
текущего рабочего каталога в отладочной информации объектного файла, что может привести
ccache, чтобы предоставить кэшированный объектный файл, у которого есть рабочий каталог в отладке
информация установлена ​​неверно. По умолчанию этот параметр отключен, так как неправильная настройка
эта отладочная информация редко вызывает проблемы. Если вы столкнетесь с проблемами, когда GDB не использует
правильный каталог, затем включите эту опцию.

CCACHE_UNIFY
Если вы установите переменную среды CCACHE_UNIFY, тогда ccache будет использовать C / C ++
унификатор при хешировании вывода препроцессора, если -g не используется при компиляции. В
унификатор работает медленнее, чем обычный хеш, поэтому установка этой переменной среды теряет
немного скорости, но это означает, что ccache может воспользоваться преимуществом отсутствия перекомпиляции
когда изменения в исходном коде заключаются только в переформатировании. Обратите внимание, что использование
CCACHE_UNIFY изменяет хэш, поэтому кэшированные компиляции с установленным CCACHE_UNIFY не могут быть
используется, когда CCACHE_UNIFY не установлен, и наоборот. Причина, по которой объединитель выключен
по умолчанию он может давать неверную информацию о номере строки в предупреждении компилятора.
сообщений.

CCACHE_EXTENSION
Обычно ccache пытается автоматически определить расширение для использования
промежуточные файлы препроцессора C в зависимости от типа компилируемого файла.
К сожалению, это иногда не работает, например, при использовании компилятора aCC.
на HP-UX. В таких системах вы можете использовать параметр CCACHE_EXTENSION, чтобы переопределить
по умолчанию. В HP-UX установите для этой переменной среды значение «i», если вы используете aCC.
компилятор.

CCACHE_STRIPC
Если вы установите переменную среды CCACHE_STRIPC, тогда ccache удалит -c
опция при вызове препроцессора. Этот вариант в первую очередь для Солнца.
Компилятор Workshop C ++, так как без этой опции отображается необоснованное предупреждение:
CC: Предупреждение: "-E" переопределяет продукт с "объекта" на "источник (стандартный вывод)", когда -E и
-c используется вместе.

CCACHE_SWIG
При использовании SWIG в качестве компилятора и в имени исполняемого файла нет swig,
тогда необходимо установить переменную среды CCACHE_SWIG, чтобы ccache мог
корректно работать с SWIG. Использование CCACHE_CPP2 также рекомендуется для SWIG из-за
однако из-за некоторых причуд препроцессора использование CCACHE_CPP2 часто можно пропустить -
проверьте сгенерированный код с установленной опцией и без нее. Известные проблемы
с использованием директив препроцессора внутри% inline-блоков и использования '#pragma SWIG'.

КЭШ РАЗМЕР УПРАВЛЕНИЕ


По умолчанию ccache имеет ограничение на размер кеша в один гигабайт и не максимальное количество
файлы. Вы можете установить другое ограничение с помощью параметров «ccache -M» и «ccache -F», которые
установить ограничения на размер и количество файлов.

Когда эти ограничения будут достигнуты, ccache уменьшит размер кеша до 20% ниже заданных вами значений.
указан, чтобы избежать слишком частого выполнения операции очистки кеша.

КЭШ СЖАТИЕ


По умолчанию на большинстве платформ ccache сжимает все файлы, которые помещает в кеш, используя
сжатие zlib. Хотя это приводит к незначительному снижению производительности,
значительно увеличивает количество файлов, помещающихся в кеш. Вы можете выключить
сжатие, устанавливающее переменную среды CCACHE_NOCOMPRESS.

КАК МЫ РАБОТАЕМ IT РАБОТАЕТ


Основная идея состоит в том, чтобы определить, когда вы второй раз компилируете один и тот же код и
использовать ранее скомпилированный вывод. Вы обнаруживаете, что это тот же код, формируя хеш
о:

o вывод препроцессора при запуске компилятора с -E

o параметры командной строки

o реальный размер компилятора и время модификации

o любой вывод stderr, сгенерированный компилятором

Они хешируются с использованием md4 (сильного хеша), и на основе этого хеша формируется файл кеша.
результат. Когда та же компиляция выполняется во второй раз, ccache может предоставить
правильный вывод компилятора (включая все предупреждения и т. д.) из кеша.

ccache был тщательно написан, чтобы всегда выдавать точно такой же вывод компилятора, что и
вы бы получили без кеша. Если вы когда-нибудь обнаружите случай, когда ccache изменяет
вывод вашего компилятора, дайте мне знать.

С ПОМОЩЬЮ КЭШ ДИСТКК


distcc - очень полезная программа для распределения компиляции между различными компиляторами.
серверы. Часто бывает полезно комбинировать distcc с ccache, чтобы
ускоряются distcc, но этот ccache полностью избегает компиляции, где это возможно.

Чтобы использовать distcc с ccache, я рекомендую использовать параметр CCACHE_PREFIX. Вам просто нужно установить
переменная среды CCACHE_PREFIX на 'distcc', а ccache будет префиксом командной строки
используется с компилятором с командой distcc.

ОБМЕН A КЭШ


Группа разработчиков может увеличить частоту попаданий в кеш, поделившись каталогом кеша. В
однако жесткие ссылки вызывают нежелательные побочные эффекты, поскольку все ссылки на кэшированный файл имеют общий
отметка времени модификации файла. Это приводит к ложным зависимостям, которые запускаются
системы сборки на основе временных меток всякий раз, когда другой пользователь ссылается на существующий файл. Обычно
пользователи увидят, что их библиотеки и двоичные файлы повторно связаны без причины. Чтобы поделиться
кэш без побочных эффектов, необходимо выполнение следующих условий:

o Используйте тот же CCACHE_DIR установка переменной окружения

o Отключить CCACHE_HARDLINK переменная среды

o Убедитесь, что все установили для переменной среды CCACHE_UMASK значение 002, это гарантирует
что кэшированные файлы доступны всем в группе.

o Убедитесь, что у всех пользователей есть разрешение на запись во всем каталоге кеша (и
что вы доверяете всем пользователям общего кеша).

o Убедитесь, что бит setgid установлен для всех каталогов в кэше. Это говорит
файловая система для наследования группового владения новыми каталогами. Команда "chmod
g + s `find $ CCACHE_DIR -type d`" может быть полезен для этого.

o Установить CCACHE_NOCOMPRESS для всех пользователей, если есть пользователи с версиями ccache
которые не поддерживают сжатие.

ИСТОРИЯ


ccache был вдохновлен сценарием оболочки compilercache, написанным Эриком Тиле и мной.
Хочу поблагодарить его за отличную работу. Видеть
http://www.erikyyy.de/compilercache/ для сценариев Эрика. ccache-swig - это порт
оригинальный ccache с добавленной поддержкой для использования с SWIG.

Я написал ccache, потому что хотел получить немного больше скорости от кеша компилятора, и я
хотел снять некоторые ограничения версии сценария оболочки.

РАЗЛИЧИЯ от КОМПИЛЕРКАШ


Самые большие различия между сценарием compilercache Эрика и ccache заключаются в следующем:

o ccache написан на C, что делает его немного быстрее (вызов внешнего
программы - это в основном то, что тормозило скрипты).

o ccache может автоматически найти настоящий компилятор

o ccache ведет статистику попаданий / промахов

o ccache может выполнять автоматическое управление кешем

o ccache может кэшировать вывод компилятора, который включает предупреждения. Во многих случаях это дает
ccache - гораздо более высокая скорость попадания в кеш.

o ccache может обрабатывать гораздо более широкий диапазон параметров компилятора

o ccache избегает двойного вызова cpp при промахе кеша

CREDITS


Благодарим следующих людей за их вклад в ccache

o Эрик Тиле за оригинальный скрипт кэша компилятора

o Лучано Роча за идею компиляции вывода препроцессора, чтобы избежать второго cpp
pass

o Пола Рассела за множество предложений и упаковку debian

Используйте ccache-swig2.0 онлайн с помощью сервисов onworks.net


Бесплатные серверы и рабочие станции

Скачать приложения для Windows и Linux

  • 1
    МСИС2
    МСИС2
    MSYS2 - это набор инструментов и
    библиотеки, предоставляющие вам
    удобная среда для строительства,
    установка и запуск родной Windows
    программное обеспечение. Это кон ...
    Скачать MSYS2
  • 2
    libjpeg-турбо
    libjpeg-турбо
    libjpeg-turbo - это кодек изображений JPEG
    который использует инструкции SIMD (MMX, SSE2,
    NEON, AltiVec) для ускорения базового уровня
    Сжатие и распаковка JPEG на
    x86, x8 ...
    Скачать libjpeg-turbo
  • 3
    Xtreme Download Manager
    Xtreme Download Manager
    У проекта теперь новый дом:
    https://xtremedownloadmanager.com/ For
    Разработчики:
    https://github.com/subhra74/xdm Xtreme
    Менеджер загрузок — это мощный инструмент для...
    Скачать Xtreme Download Manager
  • 4
    ТТГО VGA32 Лайт
    ТТГО VGA32 Лайт
    Особенности: низкое разрешение 4:3 и 16:9.
    Выход VGAКлавиатура и мышь PS/2
    Пользовательский интерфейс на основе inputText (TUI)
    с диалоговым менеджеромЧастично Unicode
    поддержкаSlave dis...
    Скачать TTGO VGA32 Lite
  • 5
    Загрузчик Clover EFI
    Загрузчик Clover EFI
    Проект переехал в
    https://github.com/CloverHackyColor/CloverBootloader..
    Особенности: загрузка macOS, Windows и Linux.
    в UEFI или устаревшем режиме на Mac или ПК с
    УЭ...
    Скачать загрузчик Clover EFI
  • 6
    UnitedRPMS
    UnitedRPMS
    Присоединяйтесь к нам в Gitter!
    https://gitter.im/unitedrpms-people/Lobby
    Включите репозиторий URPMS в вашем
    система -
    https://github.com/UnitedRPMs/unitedrpms.github.io/bl...
    Скачать объединенные рпмс
  • Больше »

Команды Linux

Ad