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

Ad


Значок OnWorks

include_server - Интернет в облаке

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

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

ПРОГРАММА:

ИМЯ


include_server.py - консервативное приближение зависимостей включения для C / C ++

СИНТАКСИС


include_server --порт ВКЛЮЧИТЬ_СЕРВЕР_ПОРТ [ПАРАМЕТРЫ]

ОПИСАНИЕ


include_server.py запускает процесс сервера включения. Этот процесс отвечает на запросы от
DistCC(1) клиенты о том, какие файлы включать в компиляции C / C ++. Include_server.py
Сама команда завершается, как только включается сервер.

Аргумент INCLUDE_SERVER_PORT - это имя сокета, используемого для всех коммуникаций.
между клиентами distcc и включаемым сервером. В distcc-насос(1) команда отвечает
для создания местоположения сокета, для передачи его этому сценарию и для передачи его всем
клиентов distcc через переменную среды INCLUDE_SERVER_PORT.

Протокол, используемый сервером включения, использует реализацию RPC distcc. Каждый distcc
запрос состоит из (1) текущего каталога и (2) списка аргументов
команда компиляции.

Если включаемый сервер может обработать запрос, он отвечает клиенту distcc с помощью
отправка списка путей к файлам. Пути к файлам - это пути сжатого источника и заголовка.
файлы, необходимые для компиляции с помощью включаемого анализа. Список также
содержит символические ссылки и даже фиктивные файлы, необходимые серверу компиляции для
создать точную копию частей файловой системы, необходимых для компиляции. В
таким образом необходимый файл заголовка, например /path/foo.h, сжимается, переименовывается и сохраняется в
временное расположение, например /dev/shm/tmpiAvfGv.include_server-9368-1/path/foo.h.lzo. В
Клиент distcc передаст эти файлы на сервер компиляции, где они будут
несжатый и смонтированный временно.

Если включаемый сервер не может обработать запрос, он возвращает пустой список
клиенту distcc.

Есть два типа сбоев, связанных с сервером включения. Сервер включения может
не могут вычислить включения или потерпеть неудачу другими способами, см. раздел ВКЛЮЧАЮТ SERVER СИМПТОМЫ.
Также компиляция на сервере удаления может завершиться ошибкой из-за неадекватности вычисленных
включить закрытие, но затем добиться успеха при локальном повторении, см. раздел ДИСТКК Несоответствие
СИМПТОМЫ.

ВАРИАНТ РЕЗЮМЕ


Под include_server.py понимаются следующие параметры.

-дПАТ, --debug_pattern = PAT
Битовый вектор для включения предупреждений и отладки
1 = предупреждения
2 = проследить некоторые функции
другие степени двойки: см. include_server / basics.py.

-е, --Эл. адрес
Отправить электронное письмо на адрес 'distcc-pump-errors' или, если определено, значение переменной enviroment
DISTCC_EMAILLOG_WHOM_TO_BLAME, когда у включаемого сервера возникают проблемы. По умолчанию
не отправлять электронную почту.

--email_bound НОМЕР
Максимальное количество писем для отправки (помимо последнего письма). По умолчанию: 3.

--нет-электронной почты
Не отправляйте электронную почту. Это значение по умолчанию.

--path_observation_re = RE
Выдавать предупреждающее сообщение всякий раз, когда имя файла разрешается в реальный путь, который соответствует
на RE, которое является регулярным выражением в синтаксисе Python. Это полезно для поиска
откуда на самом деле берутся включенные файлы. Используйте RE = "", чтобы найти их все. Примечание:
предупреждения должны быть включены как минимум с -d1.

--pid_file ПУТЬ ФАЙЛА
Pid включаемого сервера записывается в файл FILEPATH. Это позволяет сценарию
такой distcc-насос снести включенный сервер.

-с, --статистика
Распечатать информацию о включенном анализе в стандартный вывод.

--stat_reset_triggers = СПИСОК
Очистить кеш статистики, когда метка времени любого пути к файлу в LIST изменяется или
filepath появляется или исчезает. СПИСОК представляет собой строку, разделенную двоеточиями.
пути к файлам, возможно, содержащие простые глобусы (что разрешено модулем Python glob).
Печатать предупреждение всякий раз, когда происходит такое изменение (если предупреждения включены). Этот
опция позволяет ограниченные исключения из нормального предположения distcc-pump, что источник
файлы не изменяются во время сборки.

-т, --время
Печатать прошедшее, пользовательское и системное время в stderr.

--unsafe_absolute_includes
Выполнять предварительную обработку на сервере компиляции, даже если включены абсолютные пути к файлам
встречаются. Обычно включаемый сервер прибегает к локальной предварительной обработке.
если он обнаруживает какие-либо абсолютные включения. Таким образом, этот флаг полезен для предотвращения таких
откаты, когда абсолютное включение является ложной тревогой, либо потому, что абсолютное
include отбрасывается во время предварительной обработки или потому, что полностью включенный файл
существует на серверах компиляции.

Точнее, с --unsafe_absolute_includes абсолютные включения игнорируются для
цели сбора включают закрытие. Использование этой опции может привести к
неверные результаты, потому что (1) заголовок действительно может быть включен в
сервер компиляции, и он может быть не таким, как на клиенте, (2) включение
директивы заголовка далее не анализируются.

Опция полезна для компиляции кода, который имеет такие жестко запрограммированные абсолютные местоположения.
файлов заголовков внутри условных директив (например, "#ifdef"), которые отображают
включает нерелевантное. Точнее, эти включения необходимо исключить во время
предварительная обработка для фактической конфигурации. Тогда вопрос о существовании
заголовочный файл является спорным, а удаленная компиляция - надежной. Это часто бывает, если
такие включения предназначены для необычных конфигураций, отличных от реальных
конфигурации.

-в, --проверять
Убедитесь, что файлы в закрытии CPP содержатся в закрытии, рассчитанном с помощью include
процессор.

-ш, --write_include_close
Напишите файл .d_approx, в котором перечислены все включенные файлы, вычисленные включением
сервер; с -x, дополнительно записать включенные файлы, рассчитанные CPP, в
.d_exact файл.

-Икс, --exact_anaанализ
Вместо этого используйте CPP, не пропускайте файлы системных заголовков.

ВКЛЮЧАЮТ SERVER СИМПТОМЫ И ВОПРОСЫ


Наиболее вероятные сообщения и предупреждения, поступающие от включаемого процессора, перечислены ниже.

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

предварительная обработка на местном уровне. Включают сервер не покрытие: Залог внешний , так как: включают сервер
потраченный БОЛЕЕ чем ... с пользователь время обращение запросить
В редких случаях включаемый сервер не может проанализировать очень сложный макрос.
выражения. Клиент distcc будет использовать простой режим distcc.

Внимание! Путь файла должен be относительный но Не
Сервер включения не принимает абсолютные пути к файлам, такие как
/usr/include/stdio.h в директивах include, поскольку нет гарантии, что
этот заголовок на компьютере сервера компиляции будет таким же, как и на
клиент. Сервер include отказывается анализировать закрытие include. Distcc
клиент не может использовать насосный режим.

Чтобы решить эту проблему не всегда надежным способом, установите переменную среды
INCLUDE_SERVER_ARGS = '- unsafe_absolute_includes' при вызове distcc-pump
скрипт для передачи параметра --unsafe_absolute_includes серверу включения.

Внимание! Absolute Путь файла ... законопроект ИГНОРИРУЕТСЯ
--Unsafe_absolute_includes уже используется. Такая ситуация происходит под тем же
обстоятельства, например, когда "Путь к файлу должен быть относительным, но не является", но в этом
В случае, если include предоставит ответ клиенту distcc.

Внимание! Path '/ ПУТЬ / ФАЙЛ' изменилось / пришло в существование / нет дольше существует
Эти предупреждения выдаются при использовании триггеров сброса статистики. Потому что / ПУТЬ / ФАЙЛ
изменено, включаемый сервер очищает свои кеши; новая версия файла (или
его отсутствие) делает анализ включения недействительным. Это сообщение обычно может быть
игнорируется; это действительно означает несколько ненадежное использование файлов системой сборки.
Рекомендуется исправить систему сборки, чтобы файлы не перезаписывались.

Внимание! Что касается перевод Ед. изм ..., поиск of файл ... решен в ... чья реальный путь is
...
Это предупреждение появляется с --path_observation_re, когда новый реальный путь соответствует
наблюдается исходный или заголовочный файл.

ДИСТКК Несоответствие СИМПТОМЫ


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

__________Предупреждение: ... насосный режим сборник (ы) не удалось on сервер, но удалось на местном уровне.
__________ Distcc-насос законопроект пониженный в простой Режим. Читать домен Distcc несовпадение симптомы
. in домен include_server(1) человек стр.

Сценарий distcc-pump выдает это сообщение в конце сборки. Это означает, что при
как минимум один вызов distcc после удаленной компиляции локальная компиляция завершилась успешно
не смогли. Каждый вызов distcc, для которого, в свою очередь, возникает такое несоответствие, также выдает
сообщение, такое как:

Внимание! удаленные  компиляция of '...' не смогли, повторил попытку в местном масштабе и есть a различный результат.

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

Конечно, если локальные компиляции не работают после удаленных сбоев, то distcc
вызов завершается с ненулевым статусом локальной компиляции. Сообщения об ошибках
напечатанные также относятся к локальной компиляции.

Откат режима distcc-pump к локальной компиляции можно отключить, установив
переменная среды DISTCC_FALLBACK в 1, что приводит к сбою команды distcc сразу
поскольку удаленная компиляция не удалась. Этот параметр очень полезен для отладки, почему
удаленная компиляция пошла не так, потому что теперь вывод с сервера будет напечатан.

Далее мы обсудим возможные причины расхождений.

Ассоциация пользователь менялась a источник or заголовок файл в течение домен строить.
Конечно, это дает противоречивые результаты.

A источник or заголовок файл менялась в течение домен строить.
Система сборки перезаписывает файл. Для ядра Linux 2.6 это происходит для
'include / linux / compile.h' и 'include / asm / asm-offsets.h'. Это условие исправлено
давая серверу включения знать, что он должен сбрасывать свои кеши, когда какой-либо
файлов изменяется. Практически это делается путем объединения файлов в двоеточие.
разделенный список, а затем установите команду INCLUDE_SERVER_ARGS, как в:

include_server_args = "- stat_reset_triggers = include / linux / compile.h: include / asm / asm-
offsets.h "

A заголовок файл is потенциально включены, но приносит не существовать, и is тогда новее включены.

Это происходит, когда какой-то заголовок foo.h включает другой заголовочный файл trick.h, но
файл trick.h еще не создан, и включение фактически игнорируется
из-за директив предварительной обработки. Сервер включения будет проверять наличие
существование trick.h, потому что он приближает все возможные пути к директивам
собственно оцениваю. Определено, что файл trick.h не существует. Если позже
сгенерирован, а затем действительно включен, тогда включаемый сервер будет ошибочно полагать
что файл все еще не существует. Решение этой проблемы - сделать
система сборки сгенерирует trick.h перед первым включением любого файла заголовка
который делает синтаксическую ссылку на trick.h

Ассоциация включают сервер законопроект и политические лидеры --unsafe_absolute_includes.
Это проблема, если есть файлы заголовков локально, которые не существуют удаленно и
которые действительно используются. Такие включения часто защищаются условными
директивы, которые оценивают так, что фактически используются только для определенных и часто
необычные платформы. Если вы не компилируете для такой платформы, то это может быть
правильно использовать --unsafe_absolute_include.

Ассоциация включают сервер и рассчитанный домен неправильно включает в себя.
Мы не знаем такой ситуации.

ВЫХОД КОДЫ


Код выхода include_server.py обычно равен 0. Что включаемый сервер запущен
правильно передается через наличие pid_file.

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


DISTCC_EMAILLOG_WHOM_TO_BLAME Адрес электронной почты, который будет использоваться для автоматического включения сервера.
электронные письма. По умолчанию используется distcc-pump-errors (это адрес электронной почты, который, вероятно, будет
не существует в вашем домене).

Кроме того, вызов компилятора может использовать дополнительные переменные среды.

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


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

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

  • 1
    Pharser
    Pharser
    Phaser - это быстрый, бесплатный и увлекательный
    исходный игровой фреймворк HTML5, который предлагает
    WebGL и рендеринг Canvas через
    настольные и мобильные веб-браузеры. Игры
    может быть со ...
    Скачать Фазер
  • 2
    VASSAL Двигатель
    VASSAL Двигатель
    VASSAL - игровой движок для создания
    электронные версии традиционной доски
    и карточные игры. Он обеспечивает поддержку
    рендеринг и взаимодействие игровых элементов,
    и ...
    Скачать движок VASSAL
  • 3
    OpenPDF - форк iText
    OpenPDF - форк iText
    OpenPDF — это библиотека Java для создания
    и редактирование PDF-файлов с помощью LGPL и
    Лицензия с открытым исходным кодом MPL. OpenPDF – это
    LGPL/MPL преемник iText с открытым исходным кодом,
    и ...
    Скачать OpenPDF — форк iText
  • 4
    SAGA GIS
    SAGA GIS
    САГА - Автоматизированная система
    Геонаучный анализ - это географический
    Программное обеспечение информационной системы (ГИС) с
    огромные возможности для геоданных
    обработка и анализ ...
    Скачать ГИС САГА
  • 5
    Панель инструментов для Java / JTOpen
    Панель инструментов для Java / JTOpen
    IBM Toolbox for Java / JTOpen — это
    библиотека классов Java, поддерживающая
    клиент/сервер и интернет-программирование
    моделей в систему под управлением OS/400,
    i5/ОС, о...
    Скачать набор инструментов для Java/JTOpen
  • 6
    D3.js
    D3.js
    D3.js (или D3 для документов, управляемых данными)
    это библиотека JavaScript, которая позволяет вам
    для создания динамических интерактивных данных
    визуализации в веб-браузерах. С D3
    вы...
    Скачать D3.js
  • Больше »

Команды Linux

Ad