Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

C++

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.85
Izual
94 / 119 / 6
Регистрация: 13.11.2012
Сообщений: 1,552
#1

Gcc без MinGW - C++

19.12.2013, 18:35. Просмотров 1780. Ответов 24
Метки нет (Все метки)

Интересует вопрос, можно ли рабочий код (который без ошибок компилируется в Visual Studio) компилировать с помощью командной строки Windows (я так понимаю что в Windows встроен компилятор gcc)...
Тут на форуме наткнулся на тему GCC с MinGW, однако MinGW это стороннее приложение, хотелось бы без него обойтись, т.к. я же знаю что код правильный (так понимаю что среда разработки VS или же MinGW именно для этого и созданна - для выявления ошибок в программном коде), та статья - GCC - компиляция C/C++ программ
И наводящий вопрос, если можно, то как подключать библиотеки? Я вот программлю под WinApi, в свойствах проэкта по дефолту написанно - Use Standart Windows Libraries (в General), ну и иногда нужно Use MFC in static library...
Туда же: если я в вкладке VStudio Linker-> Input в режиме Debug дописываю gdi32.lib , comctl32.lib и др. то можно ли их так же добавлять в проэкт?
И ещё один наводящий вопрос - полазил по интернету, библиотеки к компилируемой программе подключаются через команду -l и библиотеку... Можно ли обойти это, используя уже в коде программы например через pragma или define это?

И пожалуйста, приводите либо примеры, либо статейки небольшие ( только не целые книги, не хочу на лишнее терять месяцы ).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2013, 18:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Gcc без MinGW (C++):

Сборки MinGW(GCC-win32/win64) от niXman - C++
с этого момента, буду производить тестовые/пререлизные/релизные сборки mingw. файлы с пометкой snapshot и prerelease - не стабильные...

mingw и лицензия - C++
Интересует следующий вопрос. Можно ли создавать ПО под лицензией, отличной от GPL (или с закрытым\частично закрытым кодом)? ПО собрано...

Mingw и windows.h - C++
Возникла ошибка в том что mingw определяет мою систему без unicode, а windows.h как unicode, и например при обращение к ф-ции...

mingw и lib - C++
Как в mingw в коде подключить файл lib, #pragma comment(lib, "Gdi32.lib") не помогает. А то пытаюсь использовать SetTextColor и подобные...

Руководство на русском по GCC и g++ - C++
Подскажите по сабжу - надо разобраться с ключами, режимами и понять общую схему работы компиляторов и линковщика. Добавлено через 3...

Вышел релиз GCC 5.1 - C++
С чем всех и поздравляю :) Это первый выпуск проекта версии 5 (GCC 5.0 был пропущен). Среди основных изменений: — поддержка OpenMP...

24
gng
644 / 490 / 133
Регистрация: 08.09.2013
Сообщений: 1,326
21.12.2013, 07:15 #16
Цитата Сообщение от Evg Посмотреть сообщение
Т.е. gcc - это сферический компилятор в вакууме? А "gcc для i386-linux", "gcc для sparc-solaris" и т.п. - это "порты"?
Не совсем. Я так понимаю:
Есть проект gcc - живущий вовсе не в вакууме, да и форма у него не сферическая .
Можно скачать его исходники и скомпилировать, напр. для целевой платформы i386-linux. Для этого не понадобятся изменения в самом проекте или, тем более, создание другого проекта. Всё будет работать "из коробки".
Есть другой проект - MinGW. Он завязан на gcc, но развивается параллельно.
0
Evg
Эксперт CАвтор FAQ
17954 / 6185 / 414
Регистрация: 30.03.2009
Сообщений: 16,974
Записей в блоге: 27
21.12.2013, 13:28 #17
gng, я понял твою мысль. Только это называется не "port", а "fork". Т.е. отдельная ветка развития. В той версии gcc, которая в MinGW, модифицируются по сути дела только внешние настроечные обвесы: как запускать процесс под windows, откуда брать инклюды и библиотеки и т.п. Та часть, которая занимается построением кода, НЕ модифицируется, т.к. процессор один и тот же, а потому процессор под виндой исполняет ровно те же самые операции, что и процессор под линуксом. Возможно, есть какие-то модификации во фронтенде на предмет включения штучного количества каких-то синтаксических расширений, используемых под виндой, может быть используются какие-то другие модели программных соглашений.

"Port" - это когда взяли процессор, под который gcc "из коробки" не будет работать в принципе (потому что этот процессор никто не поддерживал), и реализовали поддержку генерации кода под этот процессор
0
gng
644 / 490 / 133
Регистрация: 08.09.2013
Сообщений: 1,326
21.12.2013, 14:04 #18
Evg, Да, термины довольно расплывчаты. Просто портом его (MinGW) обычно называют , в т.ч. в официальной документации.
0
Dmitriy_M
1356 / 1237 / 114
Регистрация: 20.03.2009
Сообщений: 4,429
Записей в блоге: 11
21.12.2013, 14:21 #19
Цитата Сообщение от gng Посмотреть сообщение
Но не думаю, что кто-то при наличии MinGW всерьез использует cygwin с WinAPI.
Назначение Cygwin создать POSIX окружение для программ которые не были портированы под Windows, иначе можно взять MS VC.
Цитата Сообщение от Evg Посмотреть сообщение
потому процессор под виндой исполняет ровно те же самые операции, что и процессор под линуксом.
Вы забыли про формат исполняемого файла. COFF, PE, ELF и т.д.
0
Evg
Эксперт CАвтор FAQ
17954 / 6185 / 414
Регистрация: 30.03.2009
Сообщений: 16,974
Записей в блоге: 27
21.12.2013, 14:37 #20
Цитата Сообщение от Dmitriy_M Посмотреть сообщение
Вы забыли про формат исполняемого файла. COFF, PE, ELF и т.д.
Это уже не есть заботы компилятора
0
gng
644 / 490 / 133
Регистрация: 08.09.2013
Сообщений: 1,326
21.12.2013, 20:29 #21
Это уже не есть заботы компилятора
Опять больше вопрос "о понятиях". )))
Иногда под компиляцией понимают и собственно компиляцию, и ассемблирование, и линковку.
Объктный файл формата ELF - результат работы ассемблера.
Динамическая библиотека формата ELF - тоже детище не линкера (как вендовая dll), а ассемблера (+ архиватора) - хотя уже считай исполняемый модуль.

Добавлено через 20 минут
*.c -> (gcc) -> *.s -> (as) -> .o -> (ld) -> binary
*.c -> (gcc) -> *.s -> (as) -> .o -> (ar) -> *.so

Добавлено через 3 часа 45 минут
PS. Прошу извинить за дезинформацию.
Динамические библиотеки все же создаются линкером.
0
Evg
Эксперт CАвтор FAQ
17954 / 6185 / 414
Регистрация: 30.03.2009
Сообщений: 16,974
Записей в блоге: 27
22.12.2013, 01:28 #22
Цитата Сообщение от gng Посмотреть сообщение
Опять больше вопрос "о понятиях". )))
Иногда под компиляцией понимают и собственно компиляцию, и ассемблирование, и линковку.
Так мы же обсуждаем компилятор gcc и его порты/форки под разные ОС. Так вот в контексте этого вопроса конкретный формат файловой системы НЕ является заботой компилятора, т.к. компилятор просто генерирует машинный код (т.е. компилятор под i386-linux и i386-windows генерирует те же самые инструкции). А уже задача ассемблера/линкера свалить этот код в некоторый контейнер, пригодный для запуска из-под операционной системы
0
gng
644 / 490 / 133
Регистрация: 08.09.2013
Сообщений: 1,326
22.12.2013, 13:27 #23
Цитата Сообщение от Evg Посмотреть сообщение
т.е. компилятор под i386-linux и i386-windows генерирует те же самые инструкции
В этом вопросе, мы, похоже, пришли к консенсусу. Тот же код gcc (или почти тот же) используется всеми форками и портами при совпадение архитектуры независимо от ОС. А ассемблер и линкер (as и ld) - это уже другой проекр GNU - Binutils. Вот они при портировании под другую OC претерпевают больше изменений.
0
Izual
94 / 119 / 6
Регистрация: 13.11.2012
Сообщений: 1,552
25.12.2013, 18:29  [ТС] #24
Так возвращяясь к изначальной теме, компилятор то в Windows есть?... Я так понимаю Mingw лишь обеспечивает нужные библиотеки...(верно ли?)
0
Evg
Эксперт CАвтор FAQ
17954 / 6185 / 414
Регистрация: 30.03.2009
Сообщений: 16,974
Записей в блоге: 27
25.12.2013, 18:39 #25
Цитата Сообщение от Izual Посмотреть сообщение
Так возвращяясь к изначальной теме, компилятор то в Windows есть?
Встроенного нет

Цитата Сообщение от Izual Посмотреть сообщение
Я так понимаю Mingw лишь обеспечивает нужные библиотеки...(верно ли?)
Нет, он цепляет те, которые библиотеки, которые идут в комплекте с виндой (т.е. являются составной частью винды). Если я правильно понял, что тут написали
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.12.2013, 18:39
Привет! Вот еще темы с ответами:

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

[mingw] не видит <codecvt> - C++
всем привет. есть библиотека, которая изначально разрабатывалась в msvc2013. к библиотеке есть требование - кросс-платформа, и...

MSVS или MINGW - C++
Привет всем. У меня скоро заканчивается пробная версия visual studio и я думаю установить mingw(операционная система Windows). Как mingw?...

libcUrl с OpenSSL на MinGW - C++
Помогите! Никак не могу разобраться с libcUrl с OpenSSL, просто libcUrl компилю без проблем, и использую, но нужнен https. ...


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

Или воспользуйтесь поиском по форуму:
25
Yandex
Объявления
25.12.2013, 18:39
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru