Как указать путь к удаленному препроцессору, например 192.0.2.17://usr/include - PullRequest
0 голосов
/ 13 февраля 2019

Можно ли указать путь включения C / C ++ для удаленного сервера препроцессора?

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

Пример минимального, полного и проверяемого

Типичный включает.В Linux по умолчанию будет /usr/include/ или т.п .;в Windows VS к местоположению, указанному в переменной $(IncludePath).

#include <iostream>
int main() {
    std::cout << "hello, world" << std::endl;
    return 0;
}

Теперь представьте, что мы устанавливаем наш путь включения следующим образом:

C_INCLUDE_PATH=192.0.2.17://usr/include;/usr/include;

Выше сначала проверяетсяудаленный сервер на 192.0.2.17, чтобы увидеть, существует ли библиотека iostream.В противном случае проверяется /usr/include.

Это немного натянуто, чтобы проиллюстрировать точку:

#include <192.0.2.17://iostream>

int main() {

    std::cout << "hello, world" << std::endl;

}

Спасибо, Кит: ^)

Ответы [ 3 ]

0 голосов
/ 13 февраля 2019

Я бы не стал ссылаться на это в подобном коде, и, как сказал dbush, вам придется улучшить препроцессор.

Но в системе Make могут быть милые способы сделать это,То есть, если вы используете Make (например), вы можете добавить в Makefile шаги, которые принудительно обновляют данные.

Однако я бы сказал, что это НЕПРАВИЛЬНО, потому что это не только включаемые файлы, которыенужно быть свежим.Если включение было изменено, связанный код, вероятно, также изменился, и вам также потребуются эти изменения.Ваш волшебный материал #include не собирается делать что-то, чтобы убедиться, что у людей есть правильный код / ​​библиотеки, для которых они включены.

Я не уверен, почему правильное использование репозиториев исходного кода не делаетуже справиться с этим для вас.

0 голосов
/ 13 февраля 2019

Так как вам нужен контроль версий в любом случае , вы можете просто использовать git (как и тысячи других проектов).Таким образом, у каждого пользователя есть локальный клон чего-либо необходимого.

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

0 голосов
/ 13 февраля 2019

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...