| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [QT] Сборка независимого EXE в Qt Creator |
| Автор: nicestep 8.3.2010, 10:58 | ||
| Доброго дня. Для изучения C++ в качестве IDE для "подопытных" программ была выбрана Qt Creator. Вопрос в том, как собрать, допустим, вот такой простой проект:
чтобы полученный в результате исполняемый файл не зависел от внешних библиотек? На данный момент результирующий HalloWorld.exe требует наличия рядом mingwm10.dll и libgcc_s_dw2-1.dll |
| Автор: Madonna 8.3.2010, 13:15 |
| собрать статически http://doc.trolltech.com/4.4/deployment-windows.html#building-qt-statically |
| Автор: SABROG 8.3.2010, 13:29 | ||||
Тут информация общая. Она и к MSVC применима, но там ведь нет mingwm10.dll. После выхода MinGW 4.4.0 я не помню, чтобы появлялись полноценные факи по сборке Qt статически без зависимостей. Но если почитать на форумах и погуглить, то собрать самому можно.
Твой пример изначально к Qt никак не относится и собирается одной командой в консоли без IDE, файлов проектов или makefile'ов. Просто нужно почитать про ключи к компилятору и избавишься от зависимостей. |
| Автор: SABROG 8.3.2010, 22:59 | ||||
Ну не получится. Уже писал об этом на другом форуме:
То есть грубо говоря пока винда 95,98 и ME не умрут окончательно и бесповоротно разработчики MinGW не сделают статический вариант. А я почему-то думаю, что это будет не скоро. Единственным вариантом мне кажется делать разные сборки MinGW под каждое семейство Windows. Но почему-то разработчики этого не делают. |
| Автор: nicestep 9.3.2010, 11:23 |
| Понятно. Тогда какой http://ru.wikipedia.org/wiki/Категория:Компиляторы_C%2B%2B я могу использовать в связке с Qt Creator, и на выходе получать абсолютно независимый от внешних библиотек исполняемый файл? Возможно это вообще? |
| Автор: SABROG 9.3.2010, 12:29 | ||
Не знаю. В чем причина неприятия зависимых библиотек .dll'ок? |
| Автор: nicestep 9.3.2010, 15:13 |
| SABROG, для проектов, использующих окна, потоки, какие-то интерфейсы etc - да, несомненно не против, а даже за. Но для halloworld'а... считаю это не приемлемым. Здесь можно, и нужно, обойтись только зависимостью от win32-библиотек, которые реализуют WinAPI |
| Автор: cutwater 9.3.2010, 16:19 | ||||||
Для helloworld наличие зависимостей не должно нисколько Вас беспокоить, сударь.
тем более что решение проблемы уже прозвучало. Линковщик не ориентирован на уровень hello world.
Да в том то и дело что не нужно. Назовите хотя бы одну причину, кроме эстетической боли в ж*пе, опровергающую это утверждение. |
| Автор: nicestep 9.3.2010, 20:30 |
| cutwater, с тобой уже все понятно, можно было не повторять. Спасибо В общем, вывод: сделать сабж на текущем уровне развития компиляторов С++ НЕВОЗМОЖНО |
| Автор: SABROG 9.3.2010, 21:11 | ||
Всё возможно, но я не сторонник этой идеи. Если в примере "Hello, World" не используются исключения и нити, то избавляться можно безопасно. Чтобы из сотни файлов сделать один, нормальные люди используют инсталлеры или на худой конец архивы. Поверь при разработке серьезного проекта это всё всплывет в подводных камнях очень не кстати, да и задачи будут посерьезней чем избавиться от mingwm10.dll. |
| Автор: nicestep 10.3.2010, 13:01 |
| SABROG, я понимаю. Спасибо за помощь |