У меня есть несколько встроенных серверов под управлением RHEL с ограниченным объемом памяти. Из-за этого я не хочу устанавливать gcc, потому что он такой большой.
Есть ли способ удаленной компиляции с gcc?
Единственный способ думать об этом - использовать NFS или SSHFS и разделять каталоги, но я чувствую, что должен быть более простой способ. Я использовал удаленный системный обозреватель через eclipse, но я не всегда хочу создавать проект eclipse.
У меня мало знаний о кросс-компиляции, но я не думаю, что мне это нужно, потому что все системы x86_64. Разрешает ли «кросс-компиляция» удаленную компиляцию с теми же собственными архитектурами?
[кросс-компиляция] (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, но вы, конечно, можете применить эти знания для любого другого дистрибутива.
Это может помочь вам уменьшить количество потоков для некоторых исходных пакетов, если у вас заканчивается ОЗУ. Это будет