Форум программистов, компьютерный форум, киберфорум
Кроссплатфор­менная разработка
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/21: Рейтинг темы: голосов - 21, средняя оценка - 4.57
-3 / 11 / 5
Регистрация: 22.01.2011
Сообщений: 201
1

Компиляция GCC в Windows

28.08.2015, 19:55. Показов 4008. Ответов 16
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
У меня в виндусе GCC для виндуса (портированный)

Я хочю на нем (5,1) скомпилировать сам компилятор из исходников.
http://gcc.parentingamerica.com/snapshots/

Дело в том что тут я невижу макефайла а сделать configure мнге просто нечем.
Собственно возникает вопрос, как скомпилировать компилятор из исходного кода.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.08.2015, 19:55
Ответы с готовыми решениями:

GCC:Компиляция в формат elf под Windows
Можно ли при помощи gcc создать в Windows исполняемый файл в формате elf? Если можно, то как?

GCC - компиляция C/C++ программ
Обсуждение приветствуется , буду рад пожеланиям по улучшению данной статьи.:) Статья в процессе...

Компиляция Objective-C в GCC
Пытаюсь выполнить компияцию кода Objective-C с помощью GCC на Windows. Для этого: 1. Установил...

Компиляция проекта в gcc
Здравствуйте, форумчане! Прошу помочь разобраться! Есть программа, представленная в 3х файлах. В...

16
Эксперт PHP
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
28.08.2015, 20:00 2
sfinexer, установить MSYS, например, в котором можно выполнить configure
0
-3 / 11 / 5
Регистрация: 22.01.2011
Сообщений: 201
28.08.2015, 20:56  [ТС] 3
Kerry_Jr, тоесть я правильно понимаю что имея tdm-gcc "из коробки", собрать компилятор в таком случае не выйдет
Или чтото не так делаю...

Добавлено через 9 минут
Может ктото из присутствующих собирал и имеет пободный опыт.

Добавлено через 6 минут
И еще возникает один вопрос который на данный момент мне неизвестен.

А именно можно ли из линукса компилировать виндовые программы, и обратно. И если да, то какие опции компилятора (GCC) при этом надо использовать.
Ведь для новой операционки не создают же отдельный компилятор....
0
18844 / 9843 / 2408
Регистрация: 30.01.2014
Сообщений: 17,285
01.09.2015, 23:53 4
Цитата Сообщение от sfinexer Посмотреть сообщение
Я хочу на нем (5,1) скомпилировать сам компилятор из исходников.
Про MSYS выше правильно сказали. Не надо игнорировать такие советы

Цитата Сообщение от sfinexer Посмотреть сообщение
Kerry_Jr, тоесть я правильно понимаю что имея tdm-gcc "из коробки", собрать компилятор в таком случае не выйдет
Нет, не выйдет. Нужно окружение. GCC собрать можно также в Cygwin.

Цитата Сообщение от sfinexer Посмотреть сообщение
можно ли из линукса компилировать виндовые программы
Можно. Ставим кросскомпилятор mingw.
apt-get install gcc-mingw32 или yum install mingw32-gcc-* в зависимости от дистрибутива.

Цитата Сообщение от sfinexer Посмотреть сообщение
и обратно
Можно. Ставим\компилируем кросскомпилятор в Cygwin.

Цитата Сообщение от sfinexer Посмотреть сообщение
не создают же отдельный компилятор
Компилятор тот же самый, но "нацеленность" его отличается. Поэтому он идет отдельно.
Вводная: Кросскомпиляция.
0
-3 / 11 / 5
Регистрация: 22.01.2011
Сообщений: 201
02.09.2015, 08:18  [ТС] 5
DrOffset, спасибо большое, обязательно попробую.
Я вот скачал необходимые коды http://tdm-gcc.tdragon.net/download котоые содержат уже маке для данного компилятора.
Однако на данный момент ничего не вышло.
Более внимательно отнесусь к данным советам.
Я предполагал что имея исходные коды самого TDM-а в частности готовых маке файлов должно быть както проще использование компиляции, вероятно оно так и есть но чегото я на данный момент недопонимаю видимо.
Если удастся разобраться, постараюсь на своем примере для "первопроходцев" описать что необходимо делать.
PS: Ранее я компилировал исходные коды как ядра линукса так и тогоже FAR-а в виндусе, но может в данном случае чтото опустил из виду.
0
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
08.09.2015, 15:26 6
Как-то давно писал скрипт для сборки.
Но без изменений вряд ли заработает, но принцип тот же.
0
-3 / 11 / 5
Регистрация: 22.01.2011
Сообщений: 201
08.09.2015, 16:20  [ТС] 7
castaway, я так понимаю этим скриптом из виндуса собирать, или можно еще и в линуксе им?
0
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
08.09.2015, 16:26 8
sfinexer, скрипт испытывался только в Windows в MSYS. Хотя теоретически должен работать и в Linux.
Еще есть скрипты по свежее: mingw-builds пользователя niXman.
0
693 / 303 / 99
Регистрация: 04.07.2014
Сообщений: 846
09.09.2015, 11:16 9
Даже в Linux, собрать свежий GCC может стать целой эпопеей.

Нужно скачать не только GCC, но и целый ряд дополнительных библиотек.
https://gcc.gnu.org/wiki/InstallingGCC :
./contrib/download_prerequisites
При этом нужно выполнить требования к сборке этих библиотек.

Кроме этого, может потребоваться выбор и накатка дополнительных патчей для конкретной платформы и методов реализации работы с памятью, прерываниями и т.д.
All source code for TDM-GCC binary packages, including both the unmodified upstream releases and the TDM-GCC-specific patches, is publicly available on SourceForge:
А уже после вызывать configure с передачей заключительного набора опций, например, желаемых компиляторов.
0
-3 / 11 / 5
Регистрация: 22.01.2011
Сообщений: 201
09.09.2015, 14:02  [ТС] 10
AlexVRud, в том и дело что в линуксе все там может быть необходимо установить просто - поиск по пакетам и через пару минут все в порядке.
В виндусе надо именно самому скачивать и устанавливать еще и пути не забывать...
Но для виндуса делать это да, так просто не выходит, и патчи как верно сказали также будут нужны, в этом основная проблема.

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

Добавлено через 4 минуты
Понятное дело когда я ядро собираю, там надо сторонний софт (да тотже компилятор к примеру...)
В виндусе чтобы собрать компилятора мне самого компилятора совсем нехватает...
И пока "а воз и ныне там"...

Добавлено через 3 минуты
у меня гдето был ассемблерный компилятор, так он сам себя собирает без всякого стороннего.
Ведь сборка это посути выдача некой последовательности бит записанной в файл. И мне как обычному человеку непонятно как так, компилятор может собирать программы из кода, а из "тогоже" кода себя скомпилировать не может...
0
923 / 639 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
09.09.2015, 14:17 11
Цитата Сообщение от AlexVRud Посмотреть сообщение
Даже в Linux, собрать свежий GCC может стать целой эпопеей.
Нужно скачать не только GCC, но и целый ряд дополнительных библиотек.
Насчет MDM не знаю, а с самим gcc проблем никогда не было. Для сборки основных целей (без Ады) нужен Си++ компилятор стандарта 98, libc с заголовками, утилита make и несколько библиотек (без заголовков), которые в большинстве случаев (если не вседа) уже присутствуют в дистрибутиве (gmp, mpc, mpfr, isl) .
libstdc++ (stl) не нужен.
Цитата Сообщение от sfinexer Посмотреть сообщение
Мое мнение что компилятор болжен быть полноценным и уметь сам себя собирать из исходныв кодов без сторонних библиотек и программ.
Ну это слишком строго. Хотя бы шелл нужен, чтобы этот компилятор запустить и make, чтобы его собрать.
0
-3 / 11 / 5
Регистрация: 22.01.2011
Сообщений: 201
09.09.2015, 15:32  [ТС] 12
Цитата Сообщение от gng Посмотреть сообщение
Ну это слишком строго. Хотя бы шелл нужен, чтобы этот компилятор запустить и make, чтобы его собрать.
Еще и компьютер тоже надо)))
Это понятно, просто для виндуса как я понал (пока к сожалению не все проверил) нужно еще и эмулятор "линукса" так как компилятор не совсем родной.
Но с другой стороны, как я понял чтобы компилировать программы в линуксе под виндус, или в виндусе под линукс также одного компилятора не достаточно, хотя смотря более приземненно на это кажется чего мешает в компилятор встроить некий код для сбора этих "целей". И указать цель сборки в макефайле а самим маке указав цель автоматом подключать параметры.

Я так понимаю все это уже есть, но требует некого шаманства или наложения патчей, хотя мне бы казалось разработчики могли бы дополнительные танцы с бубном внести в сам код компилятора.
0
Evg
09.09.2015, 15:43
  #13

Не по теме:

Цитата Сообщение от sfinexer Посмотреть сообщение
Мое мнение что компилятор болжен быть полноценным и уметь сам себя собирать из исходныв кодов без сторонних библиотек и программ
У афторов gcc (да и любого другого бесплатного софта) мнение другое. Что-то типа: мы вам нахаляву выдаём компилятор, а потому ваше мнение нас не сильно заботит

0
923 / 639 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
09.09.2015, 15:53 14
Цитата Сообщение от sfinexer Посмотреть сообщение
просто для виндуса как я понал (пока к сожалению не все проверил) нужно еще и эмулятор "линукса" так как компилятор не совсем родной.
Об этом выше вам написали. Скрипт configure и некоторые команды шелла из Мэйкфайлов в вендовой оболочке работать не будут.
Цитата Сообщение от sfinexer Посмотреть сообщение
Но с другой стороны, как я понял чтобы компилировать программы в линуксе под виндус, или в виндусе под линукс также одного компилятора не достаточно, хотя смотря более приземненно на это кажется чего мешает в компилятор встроить некий код для сбора этих "целей". И указать цель сборки в макефайле а самим маке указав цель автоматом подключать параметры.
Среди целей нативного гцц есть венда, но так скомпилированные программы будут работать под cygwin. Разработчики считают, что этого достаточно.
Для сборки привычных вендовых программ в линуксе есть кросс-компилятор mingw - это gcc, допиленный специально для этих целей. Там, соответсвенно, свои версии либ с вендовым ABI. Может вы другого мнения, но мне представляется вполне обоснованным, что мэйнстрим гцц не заморачивается с подконтрольным MS вендовым ABI.
А собирать линуксовые программы под вендой - это уж совсем для "любителей".
0
-3 / 11 / 5
Регистрация: 22.01.2011
Сообщений: 201
09.09.2015, 16:07  [ТС] 15
Кросс-компилятор, есть... тока он опять сам себя не собирает.
Буду сейчас пробовать разные варианты, если получится напишу, может пригодится комуто.
0
-3 / 11 / 5
Регистрация: 22.01.2011
Сообщений: 201
09.09.2015, 17:46  [ТС] 16
checking for the correct version of gmp.h...
Я его поставил и h файл есть
Миниатюры
Компиляция GCC в Windows  
0
923 / 639 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
11.09.2015, 18:54 17

Не по теме:

Цитата Сообщение от Evg Посмотреть сообщение
У афторов gcc (да и любого другого бесплатного софта) мнение другое. Что-то типа: мы вам нахаляву выдаём компилятор, а потому ваше мнение нас не сильно заботит
Категорически не согласен. Более того, если вы сами возьметесь дописать функционал (нужный ещё кому-то, кроме вас) то есть реальный шанс, что ваш код попадет в мейнстрим. Также можете допиленную вами версию продавать, при усовии, что вашим покупателям будут предоставлены исходники под ГПЛ. Свобоные лицензии как раз и "думают" о пользователях, а не о быдле, с которого нужно выколотить деньги.
Делать что-то под заказ для полутора "экспериментаторов" разработчики СПО, понятное дело, не будут.
А сравнивать с проприетарщиной в контексте данной темы и вовсе смешно. Там и самих-то исходников нет, так что и компилировать нечего.


Цитата Сообщение от sfinexer Посмотреть сообщение
Кросс-компилятор, есть... тока он опять сам себя не собирает.
Почему же? Кроскопилятор Линукс->Венда mingw прекрасно сам себя собирает. Вендовый mingw под Вендой тоже себя собирает (немного сложнее, поскольку основная среда сборки и для него - всё тот же линукс).
И не вина разрабов gcc и других свободныз программ в том, что Венда, мягко говоря - не самая удобная среда сборки. Собирайте под Линуксом, и большинство обозначенных вами проблем отпадет.
0
11.09.2015, 18:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.09.2015, 18:54
Помогаю со студенческими работами здесь

Раздельная компиляция nasm+gcc для подсистемы Debian в Windows 10
Я сейчас активировал подсистему линукс в винде 10, установил из Mic.Store "Debian". Установил...

Компиляция gcc
Подскажите как в VS скомпилировать программу с помощью компилятора gcc

Компиляция (gcc)
Добрый вечер! После компиляции текстовый файл становится вдруг двоичным, как следствие его...

gcc компиляция
Проблема возникла при компиляции проекта code::block. При build and run все работает, в папке bin...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru