Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Компиляция в самостоятельный exe-шник


Автор: sashas 28.6.2004, 13:24
Есть такая проблема. Написал я жутко нужную прогу, но вот беда - ее exe-шник не запускается на машинах где нет buildera. Явно решение просто и кто-то это знает huh2.gif

Автор: lynx_916 28.6.2004, 13:27
а чё за прога(чё она использует?)
Добавлено @ 13:29
она просто может использовать либ ВСЛя. его надо взять тоже.

Автор: sashas 28.6.2004, 13:31
Да ничего экстраординарного. Пара компонентов (кнопочек, там), а в остальном усердная работа с канвасом. (эмулирует напыление оптических покрытий, если это столь важно wow.gif )
Добавлено @ 13:33
Не очень-то это получается sad.gif . Она требует какую-то библиотеку для debug' а, а она большая...

Автор: Конструктор 28.6.2004, 14:49
Заходим в опции проекта Project->Options.
Вкладка Compiler -> Release
Вкладка Packages -> Снять флажок с Build With Rintime Packages
Вкладка Linker -> Снять флажок с Use Dynamic RTL

Автор: Baa 28.6.2004, 18:15
Лень воспользоваться поиском?
"Явно решение просто и кто-то это знает"
Ведь если так, то значит вопрос уже задавали? (Притом ни один раз уже!)

Автор: Peter 29.6.2004, 11:35
Зато если библиотеки линковать статически, а не динамически, exe-шник дюже растолстеет (наверное, больше мегабайта будет). Не пора ли сменить компилятор?

Автор: Гость_Crash_K 30.6.2004, 15:35
Я например вопрос этот уже задавал!!!

Автор: Artem13 5.7.2004, 14:26
Peter
и какой предложишь? Вижал? biggrin.gif Дык тама таже фигня!!!

Автор: Олег М 5.7.2004, 14:30
sashas
Посмотри какие у тебя dll-ки цепляются и отключи в проекте, либо добавь в директорию с файлом

Автор: Peter 5.7.2004, 15:38
Цитата(Artem13 @ 5.7.2004, 14:26)
Peter
и какой предложишь? Вижал?

gcc, mingw
Dev-C++ - там этой "фигни" нет.

Автор: Mnior 6.1.2008, 03:14
Цитата(Peter @ 29.6.2004,  11:35)
Зато если библиотеки линковать статически, а не динамически, exe-шник дюже растолстеет (наверное, больше мегабайта будет). Не пора ли сменить компилятор?

1. Как статически скомпилить?
Есть QT (4.3.3, qmake - 4.3.2 smile )
MinGW (3.4.2) minimal
Небольшое руководство или ссылку, плиз.

2. Как я слыхал и не раз, Opera юзает библиотеку QT, а весит 4 Mb.
Я не думаю, что львиную долю занимают окошечки - в основном анализ, прорисовка и обработка HTML/JS, сеть, протоколы (RSS, Mail, IRS, Torrent ...), usability ...
Да и 4 метра ... эти dll-ки QСore, QGui побольше кушают.
В чём фокус?

3.
Цитата(Peter @ 29.6.2004,  11:35)
gcc, mingw
Dev-C++ - там этой "фигни" нет.
А по подробней? В чём фишка и где грабли.

Автор: JackYF 6.1.2008, 11:35
Цитата(Mnior @  6.1.2008,  02:14 Найти цитируемый пост)
Opera юзает библиотеку QT

третьей версии - там явно поменьше библиотека занимает, и это в архиве, не забывай.

Цитата(Mnior @  6.1.2008,  02:14 Найти цитируемый пост)
Как статически скомпилить?

статические скомпилировать саму qt, потом в списке библиотек указать qt4-core, qt4-gui и ещё, что там надо...

Автор: Mnior 7.1.2008, 09:49
Цитата(JackYF @ 6.1.2008,  11:35)
... и это в архиве, не забывай.
Не в архиве - 3.25 Mb - сам посмотри. Пакет инсталяции (полный) 6Mb.
Цитата(JackYF @ 6.1.2008,  11:35)
статические скомпилировать саму qt, потом в списке библиотек указать qt4-core, qt4-gui и ещё, что там надо...
А по подробней можно, я новичёк в этом деле ...

Я тупо скопировал последнюю версию Qt 4.3.3 (хотя потом пришлось катать 4.3.2, чтоб один файлик слямзить - qmake.exe smile )
MinGW взял ихний по умолчанию 3.4.2 (хотя при помощи 5.1.3 закачал текущий минимальный набор пакетов, кстати если просто распаковать содержимое поверх - этого хватит для нормального обновления? И стоит ли обновлять?)

По умолчанию у них уже есть скомпилированные dll-ки. Я хочу чтоб только добавились статические либы. Qt уже сконфигуирован и как я понял не ахти как мне нужно.
Во первых, там кажись компилится и дебаг и релиз - дебаг мне не нужен, его и нет сейчас в dll.
Во вторых, там вообще дофига параметров настройки типа "-no-exceptions", надо что-то устанавливать, или по умолчанию всё пучком? Я абсолютно незнаю как скомпилены были эти dll, что-то мне подсказывает, что не так как прописано в конфиге. Кажись надо будет -no-exceptions и -no-qt3support поставить.
Во третих, нужно ли рекомпилить qmake? он же у меня с 4.3.2, если обязательно (почему?), то хватает ли просто накрыть директорию Qt\qmake?
В четвёртых, как скомпилить чисто либы без всяких там других вещей (demo, examples) - так?:
Цитата
cd Qt
confugure -release -static -no-qt3support -no-qmake
cd src
qmake src.pro
mingw32-make -f Makefile.Release

В пятых, могу ли я после этого компилить динамически или статически, в зависимости от проекта, или надо каждый раз реконфигуировать?
В шестых, после компила много всякого барахла, "mingw32-make -f Makefile.Release clean" кажись всё удалит, кроме папок, а всё левое низя, руками что-ли?
Ну и в седьмых, как компилить статически/динамически? Лучше на ком-нидь примере из екзамплов - Qt\examples\tutorial\t1, например.

Заранее спасибо и ссори за ламерские вопросы - белоручка, привык к всяким там MSVC, Delphi, VIP ...

Автор: JackYF 7.1.2008, 11:36
Со статической компиляцией никогда не имел дела, потому что до сих пор не могу понять, зачем она нужна (ну, кроме вырожденных случаев, ясное дело).

Автор: MAKCim 7.1.2008, 11:40
Цитата(JackYF @  7.1.2008,  11:36 Найти цитируемый пост)
Со статической компиляцией никогда не имел дела, потому что до сих пор не могу понять, зачем она нужна

для портабельности и большей скорости работы

Автор: Grechkin 15.2.2008, 09:58
Заглохла тема.
Сам сейчас занимаюсь изучением Qt4. Сначала собрал динамические библиотеки. Все работает, файлики получаются маленькие, но на другой машине без QtGui4.dll и QtCore4.dll работать отказываются а эти файлы в сумме 12 мегабайт. Ну не дело это с программкой в 100 кб таскать библиотеки такого размера!!
Хорошо собрал статическую библиотеку. Посмотрел все екземлы меньше 8 мег хеллоу ворлд нету...

Как выйти из положения и создавать переносимые файлы адекватного размера?
Подскажите пожалуйста!

Автор: Kappac 15.2.2008, 10:57
Вся проблема в том, что если используешь Qt, экземпляры библиотеки в любом случае нужны! Уж лучше один раз на машину закинуть нужные *.dll, тем более, что в реальных проектах 8 мб. это не так много. 

Автор: xvr 15.2.2008, 12:12
Цитата(sashas @  28.6.2004,  13:24 Найти цитируемый пост)
Есть такая проблема. Написал я жутко нужную прогу, но вот беда - ее exe-шник не запускается на машинах где нет buildera. Явно решение просто и кто-то это знает 


Цитата(Конструктор @  28.6.2004,  14:49 Найти цитируемый пост)
Заходим в опции проекта Project->Options.
Вкладка Compiler -> Release
Вкладка Packages -> Снять флажок с Build With Rintime Packages
Вкладка Linker -> Снять флажок с Use Dynamic RTL


Цитата(Peter @  29.6.2004,  11:35 Найти цитируемый пост)
Зато если библиотеки линковать статически, а не динамически, exe-шник дюже растолстеет (наверное, больше мегабайта будет). Не пора ли сменить компилятор? 


Цитата(Mnior @  6.1.2008,  03:14 Найти цитируемый пост)
1. Как статически скомпилить?
Есть QT (4.3.3, qmake - 4.3.2  )
MinGW (3.4.2) minimal
Небольшое руководство или ссылку, плиз.


Цитата(Grechkin @  15.2.2008,  09:58 Найти цитируемый пост)
Сам сейчас занимаюсь изучением Qt4. Сначала собрал динамические библиотеки. Все работает, файлики получаются маленькие, но на другой машине без QtGui4.dll и QtCore4.dll работать отказываются а эти файлы в сумме 12 мегабайт. Ну не дело это с программкой в 100 кб таскать библиотеки такого размера!!
Хорошо собрал статическую библиотеку. Посмотрел все екземлы меньше 8 мег хеллоу ворлд нету...

Как выйти из положения и создавать переносимые файлы адекватного размера?
Подскажите пожалуйста! 


Цитата(Kappac @  15.2.2008,  10:57 Найти цитируемый пост)
Вся проблема в том, что если используешь Qt, экземпляры библиотеки в любом случае нужны! Уж лучше один раз на машину закинуть нужные *.dll, тем более, что в реальных проектах 8 мб. это не так много. 


Я фигею, дорогая редакция!  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)