![]() |
|
Модераторы: xvr |
![]()
|
|
| gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: нет Всего: 17 |
есть программа perl +C как только я компилирую включается мой компилятор (СИ модули я не писал, но они входят в программу)
подскажите какие есть идеальный и максимальный вариант собрать кросс-платформенно Си модули чтобы они работали на всех платформах и на извесном (многом) аппаратном обеспечении?? для удобства! нужно разделить win, linux, freebsd? или win и unix? или как-то еще? если есть ссылка, то покажите! я нифига в гугле не нашел... (хотелось бы получить полный ответ, что куда и зачем ставить... ) http://forum.vingrad.ru/forum/topic-267024.html Это сообщение отредактировал(а) gcc - 23.7.2009, 02:00 |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
posix и не-posix
большинство unix'ов следуют определеным версиям posix, поэтому интерфейс использования большинства системных функций в общем то одинаков поэтому win и unix + #if[n]def...#define...#endif -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: нет Всего: 17 |
как железо? я думал что надо под железо еще собирать, мне сказали надо биндить под железо
если у меня i386 FreeBSD, на хостинге/сервер HP FreeBSD или SUN FreeBSD, если я соберу на i386, будут ли Си модули на HP или на SUN работать? может нужно какую-то оптимизацию поставить? компилятор который в FreeBSD по-умолчанию кросс-платформенно компилирует под всю извесную (многою) архитектуру железа (серверную) ? |
|||
|
||||
| xvr |
|
||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 20 Всего: 223 |
Да
|
||||||
|
|||||||
| gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: нет Всего: 17 |
я именно это и спрашиваю... и какое название этого компилятора? (в гугле ничего не нашел) как это сделать? кроме меня никто не делал? дайте информацию как это сделать... (я тоже знаю что нужен компилятор, только какой и как это сделать никто не знает) Это сообщение отредактировал(а) gcc - 24.7.2009, 22:36 |
|||
|
||||
| powerfox |
|
|||
![]() I wanna fork() ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3990 Регистрация: 1.10.2005 Где: Санкт-Петербург Репутация: 5 Всего: 97 |
GCC (не вы, а компилятор ;) ) поддерживает довольно большое число архитектур. С его помощью можно скомпилировать программу и для x86, и для какого-нибудь RISC. Сделать, чтобы один и тот же исполняемый файл работал везде просто невозможно. Т.к. у Linux, у FreeBSD и у Windows разный формат исполняемых файлов, то даже кроссплатформенную программу нужно собирать для каждой из ОС. man gcc, или поиск по "crosscompilation gcc". Самый полный ответ находится в книгах по архитектуре компьютера. |
|||
|
||||
| gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: нет Всего: 17 |
извините, я не нашел...
по этому запрпосу "crosscompilation gcc" (и аналогичных) я нашел только списки рассылки в котором задаються некоторые вопросы... но там не написано, может я что-то не понял, но как это сделать? что написать компилятору? или это не реально...? (СС который по умолчанию в FreeBSD это и есть gcc, если я праивльно понял ) |
|||
|
||||
| powerfox |
|
|||
![]() I wanna fork() ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3990 Регистрация: 1.10.2005 Где: Санкт-Петербург Репутация: 5 Всего: 97 |
gcc, при компиляции и компановке программы учитывается несколько параметров системы:
Именно поэтому не существует кроссплатформенных компилируемых программ.
Плохо искали ;) http://wiki.osdev.org/GCC_Cross-Compiler http://en.wikipedia.org/wiki/Cross_compiler http://www.airs.com/ian/configure/configure_5.html http://gcc.gnu.org/wiki/Building_Cross_Toolchains_with_gcc ... |
|||
|
||||
| xvr |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 20 Всего: 223 |
Ничего. Кросс компилятор - это не тот gcc, который компилирует для ОС, в которой он работает, это ДРУГОЙ компилятор
Сам gcc собирается с сорцов любым С компилятором (например уже готовым gcc). В дереве сорцов gcc есть куски, расчитанные на многие разные архитектуры. Когда gcc компилируется его make файл (грубо говоря) определяет на какой ОС он запущен и подставляет соответствующие аппаратно и ОС зависимые куски. Таким образом, gcc собранный на x86 Linux'е будет генерировать ELF файлы с коммандами для x86 Но это автоматическое определение железа и ОС можно отключить и задать эти параметры явно, с командной строки make файлу При этом сам полученный gcc будет работать на той платформе, на которую его откомпилирует тот самый 'любой С компилятор', но код и файлы будет генерировать на ту платформу, которую явно задали make файлу. Это и будет кросс компилятор Стоит добавить, что одного кросс компилятора мало. Еще нужны будут кросс binutil (ассемблер, линкер и пр) и библиотеки для целевой платформы (они уже не кросс, а самые настоящие 'чужие' библиотеки) |
||||
|
|||||
![]()
|
| Правила форума "С/С++: Программирование под Unix/Linux" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |