англійськафранцузькаіспанська

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_PORT [ПАРАЦІЇ]

ОПИС


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

Аргумент INCLUDE_SERVER_PORT — це ім'я сокета, що використовується для всіх комунікацій
між клієнтами distcc і сервером включення. The 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. The
Клієнт distcc передасть ці файли на сервер компіляції, де вони будуть
не стиснений і змонтований тимчасово.

Якщо сервер включення не може обробити запит, він повертає порожній список
клієнту distcc.

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

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


Наведені нижче параметри розуміються для include_server.py.

-dPAT, --debug_pattern=PAT
Бітовий вектор для включення попереджень і налагодження
1 = попередження
2 = простежити деякі функції
інші повноваження двох: див. include_server/basics.py.

-е, --електронна пошта
Надіслати електронний лист на адресу 'distcc-pump-errors' або, якщо визначено, значення змінної середовища
DISTCC_EMAILLOG_WHOM_TO_BLAME, коли у сервера включення виникають проблеми. За замовчуванням є
щоб не надсилати електронну пошту.

--mail_bound НОМЕР
Максимальна кількість електронних листів для надсилання (на додаток до остаточного листа). За замовчуванням: 3.

--без електронної пошти
Не надсилайте електронну пошту. Це значення за замовчуванням.

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

--pid_файл ШЛЯХ ДО ФАЙЛУ
PID сервера включення записується у файл FILEPATH. Це дозволяє створити сценарій
такий distcc-насос щоб зруйнувати сервер включення.

-так, --статистика
Надрукуйте інформацію в стандартному виводі про включення аналізу.

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

-t, --час
Надрукувати пройде, користувач і системний час до stderr.

--unsafe_absolute_includes
Виконуйте попередню обробку на сервері компіляції, навіть якщо містить абсолютні шляхи до файлів
зустрічаються. Зазвичай включення-сервер повертається до локальної попередньої обробки
якщо він виявляє будь-які абсолютні включення. Таким чином, цей прапор корисний для запобігання цьому
резервні варіанти, коли абсолютне включає, є помилковою тривогою, або тому, що абсолютне
include відкидається під час попередньої обробки або тому, що повністю включений файл
існує на серверах компіляції.

Точніше, з --unsafe_absolute_includes абсолютні включення ігноруються
цілі збору включають закриття. Використання цієї опції може призвести до
неправильні результати, оскільки (1) заголовок насправді може бути включений у файл
компіляційний сервер, і він може бути не таким, як на клієнті, (2) включати
директиви заголовка далі не аналізуються.

Ця опція корисна для компіляції коду, який має такі жорстко закодовані абсолютні розташування
файлів заголовків всередині умовних директив (наприклад, "#ifdef"), які відображають
включає нерелевантні. Точніше, ці включення необхідно усунути під час
попередня обробка для фактичної конфігурації. Тоді постає питання про існування
заголовний файл є спірним, а віддалена компіляція є звуком. Це часто буває, якщо
такі включення призначені для незвичайних конфігурацій, відмінних від реальних
configuration.

-v, --підтвердити
Переконайтеся, що файли в закритті CPP містяться в закритті, обчисленому за допомогою включення
процесор.

-w, --write_include_closure
Напишіть файл .d_approx, у якому перераховано всі включені файли, обчислені за допомогою включення
сервер; за допомогою -x, додатково запишіть включені файли, як обчислено CPP до a
.d_exact файл.

-x, --точний_аналіз
Натомість використовуйте CPP, не пропускайте системні файли заголовків.

ВКЛЮЧАТИ SERVER СИМПТОМИ І ПИТАННЯ


Нижче наведено найбільш вірогідні повідомлення та попередження, які надходять від процесора включення.

Попередня обробка локально. Include сервер НЕ покриття: Не міг визначити дефолт система
включати каталоги
Щоб визначити каталоги системних заголовків за замовчуванням, сервер включення запускає файл
компілятор один раз для кожної мови, необхідної під час сеансу. Це повідомлення вказує
що компілятор, зазначений у distcc, відсутній на клієнті.

Попередня обробка локально. Include сервер НЕ покриття: Порука з оскільки включати сервер
відпрацьований більше ніж ...с користувач час обробка запросити
У незвичайних ситуаціях сервер включення не може аналізувати дуже складний макрос
вирази. Клієнт distcc використовуватиме звичайний режим distcc.

Увага! Шлях до файлу повинен be відносний але не є
Сервер включення не приймає абсолютні шляхи до файлів, наприклад
/usr/include/stdio.h, в директиви include, тому що немає гарантії, що це
цей заголовок на компіляційному сервері буде таким же, як і на компіляційній машині
клієнта. Сервер включення припиняє аналіз закриття включення. Distcc
клієнт не може використовувати режим насоса.

Щоб подолати цю проблему не завжди надійним способом, встановіть змінну середовища
INCLUDE_SERVER_ARGS='--unsafe_absolute_includes' під час виклику distcc-pump
сценарій для передачі параметра --unsafe_absolute_includes на сервер включення.

Увага! абсолют шлях до файлу ... було ігноровано
--unsafe_absolute_includes використовується. Ця ситуація відбувається при ж
обставини, наприклад, коли "Filepath має бути відносним, але не є", але в цьому
у випадку включення надасть відповідь клієнту distcc.

Увага! Шлях '/PATH/FILE' змінився/прийшов в існування/ні довше існує
Ці попередження видаються під час використання тригерів скидання статистики. Оскільки /PATH/FILE
змінено, сервер включення очищає свої кеші; нову версію файлу (або
його відсутність) робить аналіз включення недійсним. Зазвичай таке повідомлення може бути
ігнорується; це означає дещо нестабільне використання файлів системою збірки.
Рекомендується виправити систему збірки, щоб файли не переписувалися.

Увага! для переклад блок ..., пошук of файл ... вирішене до ... чий реальний шлях is
...
Це попередження виникає з --path_observation_re, коли новий реальний шлях відповідає a
спостерігається вихідний або заголовний файл.

DISTCC НЕВІДПОВІДНІСТЬ СИМПТОМИ


Взаємодія між системою збірки, distcc і сервером включення є певною мірою
складний. Коли команда distcc отримує невдалу компіляцію від віддаленого сервера
повторює компіляцію локально. У цьому розділі розглядаються причини розбіжностей
між віддаленим і локальним компіляцією. Вони позначені повідомленням про пониження в посаді:

__________Увага: ... насосний режим компіляція(и) не вдалося on сервер, але вдалося локально.
__________Distcc-насос було понижений до простий Режим. Читати Distcc Невідповідність Симптоми
розділ in include_server(1) людина стр.

Сценарій distcc-pump видає це повідомлення в кінці збірки. Це означає, що для at
принаймні один виклик distcc, локальна компіляція була успішною після віддаленої компіляції
не вдалося. Кожен виклик distcc, для якого виникла така невідповідність, у свою чергу також видає a
повідомлення, наприклад:

Увага! віддалений компіляція 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 не існує. Якщо пізніше
згенеровано, а потім дійсно включено, тоді сервер включення помилково вважатиме
що файл досі не існує. Рішення цієї проблеми полягає в тому, щоб зробити
build system генерувати trick.h перед першим включенням будь-якого заголовного файлу
що робить синтаксичне посилання на trick.h

Команда включати сервер було почалася з --unsafe_absolute_includes.
Це проблема, якщо локально є файли заголовків, які не існують віддалено та
які фактично використовуються. Такі включення часто захищаються умовними
директиви, які оцінюють так, що фактично використовуються лише для певних і часто
незвичайні платформи. Якщо ви не збираєтеся для такої платформи, то це може бути
правильно використовувати --unsafe_absolute_include.

Команда включати сервер має розрахований неправильно включає.
Ми не знаємо такої ситуації.

EXIT КОДИ


Код виходу include_server.py зазвичай дорівнює 0. Це означає, що сервер включення запущено
належним чином передається через існування pid_file.

НАВКОЛИШНЄ СЕРЕДОВИЩЕ ЗМІННІ


DISTCC_EMAILLOG_WHOM_TO_BLAME Адреса електронної пошти для автоматичного включення сервера
електронні листи. За замовчуванням є 'distcc-pump-errors' (це адреса електронної пошти, яка, ймовірно, буде
не існує у вашому домені).

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

Використовуйте include_server онлайн за допомогою служб onworks.net


Безкоштовні сервери та робочі станції

Завантажте програми для Windows і Linux

  • 1
    Phaser
    Phaser
    Phaser — це швидке, безкоштовне та веселе відкриття
    вихідний ігровий фреймворк HTML5, який пропонує
    Взаємовідображення WebGL і Canvas
    настільні та мобільні веб-браузери. Ігри
    можна спільно...
    Завантажити Phaser
  • 2
    Двигун ВАССАЛ
    Двигун ВАССАЛ
    VASSAL — ігровий движок для створення
    електронні версії традиційної дошки
    і карткові ігри. Він забезпечує підтримку для
    рендеринг і взаємодія ігрових елементів,
    і ...
    Завантажити VASSAL Engine
  • 3
    OpenPDF - форк iText
    OpenPDF - форк iText
    OpenPDF - це бібліотека Java для створення
    і редагування файлів PDF за допомогою LGPL і
    Ліцензія з відкритим кодом MPL. OpenPDF - це
    LGPL/MPL з відкритим кодом наступник iText,
    має ...
    Завантажте OpenPDF - Fork of iText
  • 4
    SAGA GIS
    SAGA GIS
    SAGA - Система для автоматизації
    Географічні аналізи - це географічні
    Програмне забезпечення інформаційної системи (ГІС) с
    величезні можливості для геоданих
    обробка та ана...
    Завантажити SAGA GIS
  • 5
    Панель інструментів для Java/JTOpen
    Панель інструментів для Java/JTOpen
    IBM Toolbox для Java / JTOpen є a
    бібліотека класів Java, що підтримують
    програмування клієнт/сервер та Інтернет
    моделі до системи під керуванням OS/400,
    i5/OS, o...
    Завантажте Toolbox для Java/JTOpen
  • 6
    D3.js
    D3.js
    D3.js (або D3 для документів, керованих даними)
    це бібліотека JavaScript, яка дозволяє вам
    створювати динамічні інтерактивні дані
    візуалізації у веб-браузерах. З D3
    ти ...
    Завантажити D3.js
  • Детальніше »

Команди Linux

  • 1
    abidiff
    abidiff
    abidiff - порівняння ABI файлів ELF
    abidiff порівнює двійковий файл програми
    Інтерфейси (ABI) двох спільних бібліотек
    у форматі ELF. Воно випромінює змістовне
    звіт...
    Запустіть abidiff
  • 2
    abidw
    abidw
    abidw - серіалізує ABI ELF
    файл abidw читає спільну бібліотеку в ELF
    форматує та створює представлення XML
    свого ABI до стандартного виводу. The
    випущений ...
    Запустіть abidw
  • 3
    copac2xml
    copac2xml
    bibutils - перетворення бібліографії
    комунальні послуги ...
    Запустіть copac2xml
  • 4
    копт
    копт
    copt - оптимізатор вічка SYSNOPIS:
    файл copt.. ОПИС: copt - це a
    оптимізатор вічко загального призначення. Це
    читає код зі свого стандартного вводу та
    пише...
    Біг копт
  • 5
    gather_stx_titles
    gather_stx_titles
    gather_stx_titles - заголовок збірки
    декларації з документів Stx ...
    Запустіть gather_stx_titles
  • 6
    гатлінг-бенч
    гатлінг-бенч
    bench - http benchmark ...
    Лава для бігу Гатлінга
  • Детальніше »

Ad