LINUX.ORG.RU

Кросскомпиляция под оффтопик

 , , ,


0

1

Так как в компьютерных аудиториях универа всё работает под окнами, возможности сдавать бинарники лаб, скомпилированные gcc нет.

Реально ли скомпилировать исходник C++11 с помощью того же gcc(я слышал, есть виндовая версия, значит он могёт?) в exe'шник?

★★★★★

Последнее исправление: mersinvald (всего исправлений: 2)

Ответ на: комментарий от Black_Roland

Да, ей и пользуюсь для нативного. Не знал что она и с mingw умеет работать.<br> Приятная неожиданность)

mersinvald ★★★★★
() автор топика

http://mxe.cc

свежак gcc будет в виде: Mingw-w64 - GCC for Windows 64 & 32 bits (при сборке не забудь выбрать его и 32 бита, если конечно не под NT 4.0 хочешь собрать)

anonymous
()

MinGW и Cygwin содержат порт gcc под Windows. Если просто скомпилировать в exe (или непонятна пока разница между ними) то MinGW предпочтительнее. Можно ставить либо сам MinGW, либо CodeBlocks с MinGW в комплекте, такое можно скачать на их официальном сайте. Вообще проблем никаких. Да, чуть не забыл - MinGW и Mingw-64 разные проекты.

mbivanyuk ★★★★★
()
Последнее исправление: mbivanyuk (всего исправлений: 1)

C морально устаревшего MinGW в последнее время мигрируют на MinGW-w64. Поэтому если есть возможность - выбирай его.

EXL ★★★★★
()

Сам собираю вендовые сборки с Линукса через mingw32-gcc-cross для заказчиков. Qt5, C++11, пробовал версии gcc 4.8.x и 4.9.x. Одна проблема, в зависимости от дистрибутива заголовочники mingw могут быть без поддержки std::thread и std::mutex, но это легко решается правкой пары строк в заголовочниках, если в гугле не найдёшь спроси меня как.

Какое отношение имеет тулчейн к IDE в упор не понимаю, можешь смело игнорировать советы про Code::Blocks и пользоваться любым редактором.

Да, мои проекты на CMake, поэтому никаких проблем с кросскомпиляцией. Тулчейн файл прилагаю.

set(CMAKE_SYSTEM_NAME Windows)

set(CMAKE_C_COMPILER   i686-w64-mingw32-gcc)
set(CMAKE_CXX_COMPILER i686-w64-mingw32-g++)

set(CMAKE_FIND_ROOT_PATH /usr/i686-w64-mingw32)
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
Dendy ★★★★★
()
Ответ на: комментарий от Dendy

можешь смело игнорировать советы про Code::Blocks и пользоваться любым редактором

Плюсую. Тем более это устаревшая, протухшая и давно не обновляющаяся IDE. Вы бы ещё Dev-Cpp или Turbo C++ насоветовали.

Зачем шагать по граблям, если даже под винду есть няшный gVIM, а для организации проектов — лаконичный Qt Creator?

EXL ★★★★★
()
Ответ на: комментарий от EXL

Ну что начал то, ему просто лабы сдать)

WRG ★★★★
()
Ответ на: комментарий от Dendy

Одна проблема, в зависимости от дистрибутива заголовочники mingw могут быть без поддержки std::thread и std::mutex, но это легко решается правкой пары строк в заголовочниках, если в гугле не найдёшь спроси меня как.

Таки переползай на MXE, там таких закидонов нету!

ЗЫ: А с LTO пробовал собирать под винду? Сильно глючит?

AF ★★★
()
Последнее исправление: AF (всего исправлений: 1)

Реально ли скомпилировать исходник C++11 с помощью того же gcc(я слышал, есть виндовая версия, значит он могёт?) в exe'шник?

Для убунты, например, есть пакет mingw-w64. Он содержит кросскомпилятор, как раз позволяющий собирать экзешники. Я когда-то собирал с помощью него лабы на WinAPI. Изначально надо немного помучиться, чтобы разобраться, как правильно этим тулчейном пользоваться. В частности, если не изменяет память, winapi-приложения надо компилировать с ключами -mwindows -mno-cygwin, чтобы получать экзешник, работающий в режиме подсистемы Windows и не требующий дополнительных dll.

static_lab ★★★★★
()
Ответ на: комментарий от Dendy

1)http://mxe.cc у этих пацанов есть довльно удобная система сборки которая собирает кроскомпиллер и разные библиотеки (Qt5 в наличии)
2)Link Time Optimization ключик -flto у gcc

AF ★★★
()
Ответ на: комментарий от AF

Qt5 поддерживает кросскомпиляцию mingw из коробки: mkspecs/win32-g++. Вообще в моей сусе богатый набор уже собранных библиотек для mingw в репозитории. А LTO интересно, нужно будет почитать.

Dendy ★★★★★
()
Ответ на: комментарий от Dendy

Вообще в моей сусе богатый набор уже собранных библиотек для mingw

Качество сборки я заценил по твоим словам:

Одна проблема, в зависимости от дистрибутива заголовочники mingw могут быть без поддержки std::thread и std::mutex

AF ★★★
()
Ответ на: комментарий от AF

Да, этот момент мне непонятен в dev-пакете, ведь сама стандартная библиотека собрана нормально. Причём эта проблема не только в сусе. Так или иначе, всё что нужно при сборке это определить правильный макрос в config.h.

Dendy ★★★★★
()
Ответ на: комментарий от EXL

Почему необновляемая? Вроде недавно вышла 13.12 А что посоветуете на замену Code::Blocks? QtCreator позьзовал, не устраивает ни дизайн интерфейса ни скорость работы, а до vim руки не доходят, да и редактор - не IDE)

mersinvald ★★★★★
() автор топика
Ответ на: комментарий от mersinvald

недавно вышла 13.12

Год назад.

А что посоветуете на замену Code::Blocks?

Если всё устраивает, то пользуйтесь им. Как я понял вам просто для учёбы лабораторные работы сдавать. Лично мой выбор - Qt Creator. C MinGW у него интеграция замечательная, да и C++11/C++14 в нём сейчас активно пилят.

И, кстати, посмотрите ещё в сторону новой MS Visual Studio 2013 Comminuty. Фактически это тоже самое, что Professional-редакция, но теперь предлагаемая бесплатно. Особенно круто, что там имеется поддержка git «из коробки» и различных расширений.

EXL ★★★★★
()
Ответ на: комментарий от Dendy

Походу виноваты кривые руки сборщиков. Мне такая проблема не разу не встречалась.
По ходу при сборке под винду больше всего проблем доставляют автолулзы. Для своего кода ессно есть cmake но вот с чужими библиотеками зачастую пичаль.

AF ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.