Можно ли удаленно скомпилировать с помощью gcc?

1018
user_ABCD

У меня есть несколько встроенных серверов под управлением RHEL с ограниченным объемом памяти. Из-за этого я не хочу устанавливать gcc, потому что он такой большой.

Есть ли способ удаленной компиляции с gcc?

Единственный способ думать об этом - использовать NFS или SSHFS и разделять каталоги, но я чувствую, что должен быть более простой способ. Я использовал удаленный системный обозреватель через eclipse, но я не всегда хочу создавать проект eclipse.

У меня мало знаний о кросс-компиляции, но я не думаю, что мне это нужно, потому что все системы x86_64. Разрешает ли «кросс-компиляция» удаленную компиляцию с теми же собственными архитектурами?

0
[кросс-компиляция] (https://en.wikipedia.org/wiki/Cross_compiler) не имеет ничего общего с удаленным или локальным кодом; компилятор, способный кросс-компиляции, способен создавать исполняемый файл, который может работать на чем-то отличном от собственной архитектуры. Другими словами, я могу написать код на своем компьютере с Windows / Linux, на котором установлен 64-разрядный процессор на базе Intel Xeon IA64, и скомпилировать указанный код для моего планшета Android с 32-разрядным процессором на базе ARM. txtechhelp 8 лет назад 0
Спасибо за подтверждение, вот как я сам это понял. user_ABCD 8 лет назад 0

2 ответа на вопрос

0
Thomas Dickey

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

Общий доступ к файлам с использованием NFS или SSHFS не поможет уменьшить объем памяти, хотя это поможет, если место на диске будет ограничивающим фактором. Однако компиляция с помощью gcc на общем диске не будет работать хорошо.

Я использую другой RHEL, 6,7 для одних, 6,6 для других и 6,4 для других. Также у них разные микроархитектуры, все они x86_64, но разные чипы Intel. Так что я действительно хочу скомпилировать каждый. user_ABCD 8 лет назад 0
@user_ABCD, вы используете какие-либо директивы `asm` в вашем источнике, которые специфичны для фактических наборов команд, используемых в разных процессорах Intel, для которых вы хотите скомпилировать? Если нет, то почему вас это беспокоит, если они все `x86_64` совместимы? txtechhelp 8 лет назад 0
@txtechhelp, меня это не касается. Более наивный и только предполагал, что это имело значение. user_ABCD 8 лет назад 0
компилируя на 6.4, вы вряд ли столкнетесь с проблемами, скопировав исполняемые файлы в 6.7 Thomas Dickey 8 лет назад 0
0
Jonas Stein

Распределенная компиляция может быть сделано с distcc.

Вы даже можете попробовать кросс-компиляцию с различными архитектурами.

Пользователи gentoo linux компилируют всю свою систему из исходных текстов, и вы можете найти много советов о кросс-компиляции, cflags и distcc в вики-сайте gentoo, но вы, конечно, можете применить эти знания для любого другого дистрибутива.

Это может помочь вам уменьшить количество потоков для некоторых исходных пакетов, если у вас заканчивается ОЗУ. Это будет