Russian Qt Forum

Qt => Вопросы новичков => Тема начата: bekor от Март 02, 2012, 23:21



Название: Единый EXE файл
Отправлено: bekor от Март 02, 2012, 23:21
допустим я написал некое приложение на Qt и хочу использовать ее на другом компьютере,
но если попытатся запустить приложение из папки debug то будет ругаться что отсутствуют dll библиотеки. Можно конечно копировать все необходимые ДЛЛ-ы в папку с *.exe файлом но это более 200 мегабайт.
Как это решается ?


Название: Re: Единый EXE файл
Отправлено: mutineer от Март 02, 2012, 23:24
Много раз поднимался этот вопрос на форуме... поищи по словам "статическая сборка"


Название: Re: Единый EXE файл
Отправлено: BRE от Март 02, 2012, 23:28
допустим я написал некое приложение на Qt и хочу использовать ее на другом компьютере,
но если попытатся запустить приложение из папки debug то будет ругаться что отсутствуют dll библиотеки. Можно конечно копировать все необходимые ДЛЛ-ы в папку с *.exe файлом но это более 200 мегабайт.
Как это решается ?
Более 200 это отладочные версии библиотек, релизные значительно меньше.


Название: Re: Единый EXE файл
Отправлено: LisandreL от Март 02, 2012, 23:30
Ну а чтобы было не 200 метров достаточно релизную сборку использовать, а не дебажную.


Название: Re: Единый EXE файл
Отправлено: bekor от Март 02, 2012, 23:34
В папке release пусто, а configure -static ругается "Unable to detect the platform from environment. ....."


Название: Re: Единый EXE файл
Отправлено: mutineer от Март 02, 2012, 23:38
В папке release пусто, а configure -static ругается "Unable to detect the platform from environment. ....."

в папке релиз пусто, потому что релизную сборку ты не делал


Название: Re: Единый EXE файл
Отправлено: kambala от Март 03, 2012, 00:46
В папке release пусто, а configure -static ругается "Unable to detect the platform from environment. ....."
ну так укажи параметром платформу, например -platform win32-msvc2010


Название: Re: Единый EXE файл
Отправлено: bekor от Март 14, 2012, 13:57
что то никак не получается,
набираю в командной строке configure -static -platform mingw32
но строка ругается что Invalid option "mingw" for -platform
в место mingw32 пробовал
mingw
w32-mingw
win32-mingw
mingw-w32
mingw-win32
ни один из вариантов не подошел,
при установке qt 4.8.0 указал путь для mingw (та которая находится в qt creator)

подскажите как победить это ...


Название: Re: Единый EXE файл
Отправлено: kambala от Март 14, 2012, 14:10
доступные платформы находятся в QTDIR/mkspecs. в твоём случае надо указывать win32-g++


Название: Re: Единый EXE файл
Отправлено: taifun от Март 14, 2012, 14:12
http://habrahabr.ru/post/137233/ (http://habrahabr.ru/post/137233/) - Qt — статическая линковка библиотеки под Windows


Название: Re: Единый EXE файл
Отправлено: bekor от Март 15, 2012, 20:47
Получилось, но теперь почему то при компиляции библиотеки qextserialport
обильно выводятся ошибки
Код:
obj/main.o:main.cpp:(.text+0x26): undefined reference to `_imp___ZN12QApplicationC1ERiPPci'
obj/main.o:main.cpp:(.text+0x33): undefined reference to `_imp___Z18qInstallMsgHandlerPFv9QtMsgTypePKcE'
obj/main.o:main.cpp:(.text+0x48): undefined reference to `_imp___ZN7QString16fromAscii_helperEPKci'
obj/main.o:main.cpp:(.text+0x76): undefined reference to `_imp___ZN7QString4freeEPNS_4DataE'
obj/main.o:main.cpp:(.text+0x8d): undefined reference to `_imp___ZN12QApplication4execEv'
obj/main.o:main.cpp:(.text+0xa7): undefined reference to `_imp___ZN11QMainWindowD2Ev'
obj/main.o:main.cpp:(.text+0xb0): undefined reference to `_imp___ZN12QApplicationD1Ev'
obj/MainWindow.o:MainWindow.cpp:(.text+0x29): undefined reference to `_imp___ZNK11QMetaObject2trEPKcS1_'
obj/MainWindow.o:MainWindow.cpp:(.text+0x61): undefined reference to `_imp___ZN11QMessageBox5aboutEP7QWidgetRK7QStringS4_'
obj/MainWindow.o:MainWindow.cpp:(.text+0x7a): undefined reference to `_imp___ZN7QString4freeEPNS_4DataE'
obj/MainWindow.o:MainWindow.cpp:(.text+0x93): undefined reference to `_imp___ZN7QString4freeEPNS_4DataE'
obj/MainWindow.o:MainWindow.cpp:(.text+0xcb): undefined reference to `_imp___ZNK11QMetaObject2trEPKcS1_'
obj/MainWindow.o:MainWindow.cpp:(.text+0xda): undefined reference to `_imp___ZNK11QMainWindow7menuBarEv'
obj/MainWindow.o:MainWindow.cpp:(.text+0xe8): undefined reference to `_imp___ZN8QMenuBar7addMenuERK7QString'
obj/MainWindow.o:MainWindow.cpp:(.text+0x109): undefined reference to `_imp___ZN7QString4freeEPNS_4DataE'
obj/MainWindow.o:MainWindow.cpp:(.text+0x11b): undefined reference to `_imp___ZN7QWidget9addActionEP7QAction'
obj/MainWindow.o:MainWindow.cpp:(.text+0x16d): undefined reference to `_imp___ZN7QString4freeEPNS_4DataE'
obj/MainWindow.o:MainWindow.cpp:(.text+0x1b8): undefined reference to `_imp___ZNK11QMetaObject2trEPKcS1_'
obj/MainWindow.o:MainWindow.cpp:(.text+0x1d8): undefined reference to `_imp___ZN7QActionC1ERK7QStringP7QObject'
obj/MainWindow.o:MainWindow.cpp:(.text+0x1fc): undefined reference to `_imp___ZN7QString4freeEPNS_4DataE'
obj/MainWindow.o:MainWindow.cpp:(.text+0x233): undefined reference to `_imp___ZN12QKeySequenceC1ERK7QString'
obj/MainWindow.o:MainWindow.cpp:(.text+0x24e): undefined reference to `_imp___ZN7QAction11setShortcutERK12QKeySequence'
obj/MainWindow.o:MainWindow.cpp:(.text+0x25e): undefined reference to `_imp___ZN12QKeySequenceD1Ev'
obj/MainWindow.o:MainWindow.cpp:(.text+0x27c): undefined reference to `_imp___ZN7QString4freeEPNS_4DataE'
obj/MainWindow.o:MainWindow.cpp:(.text+0x2b3): undefined reference to `_imp___ZN7QAction12setStatusTipERK7QString'
obj/MainWindow.o:MainWindow.cpp:(.text+0x2d1): undefined reference to `_imp___ZN7QString4freeEPNS_4DataE'
obj/MainWindow.o:MainWindow.cpp:(.text+0x2f8): undefined reference to `_imp___ZN7QObject7connectEPKS_PKcS1_S3_N2Qt14ConnectionTypeE'
obj/MainWindow.o:MainWindow.cpp:(.text+0x35f): undefined reference to `_imp___ZN7QString4freeEPNS_4DataE'
obj/MainWindow.o:MainWindow.cpp:(.text+0x3b9): undefined reference to `_imp___ZN7QString4freeEPNS_4DataE'
obj/MainWindow.o:MainWindow.cpp:(.text+0x400): undefined reference to `_imp___ZN7QString4freeEPNS_4DataE'
obj/MainWindow.o:MainWindow.cpp:(.text+0x45a): undefined reference to `_imp___ZN11QMainWindowC2EP7QWidget6QFlagsIN2Qt10WindowTypeEE'
obj/MainWindow.o:MainWindow.cpp:(.text+0x477): undefined reference to `_imp___ZN7QWidget14setWindowTitleERK7QString'
obj/MainWindow.o:MainWindow.cpp:(.text+0x4a2): undefined reference to `_imp___ZN11QMainWindow16setCentralWidgetEP7QWidget'
obj/MainWindow.o:MainWindow.cpp:(.text+0x4e3): undefined reference to `_imp___ZN11QMainWindow13addDockWidgetEN2Qt14DockWidgetAreaEP11QDockWidget'
obj/MainWindow.o:MainWindow.cpp:(.text+0x526): undefined reference to `_imp___ZN11QMainWindowC2EP7QWidget6QFlagsIN2Qt10WindowTypeEE'
obj/MainWindow.o:MainWindow.cpp:(.text+0x543): undefined reference to `_imp___ZN7QWidget14setWindowTitleERK7QString'
obj/MainWindow.o:MainWindow.cpp:(.text+0x56e): undefined reference to `_imp___ZN11QMainWindow16setCentralWidgetEP7QWidget'
obj/MainWindow.o:MainWindow.cpp:(.text+0x5af): undefined reference to `_imp___ZN11QMainWindow13addDockWidgetEN2Qt14DockWidgetAreaEP11QDockWidget'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x1b): undefined reference to `_imp___ZN6QEventC2ENS_4TypeE'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x26): undefined reference to `_imp___ZN7QString11shared_nullE'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x3d): undefined reference to `_imp___ZN7QStringaSERKS_'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x67): undefined reference to `_imp___ZN6QEventC2ENS_4TypeE'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x72): undefined reference to `_imp___ZN7QString11shared_nullE'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x89): undefined reference to `_imp___ZN7QStringaSERKS_'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0xe1): undefined reference to `_imp___ZN9QTextEdit6appendERK7QString'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0xfb): undefined reference to `_imp___ZN6QMutexD1Ev'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x12b): undefined reference to `_imp___ZN11QDockWidgetC2EP7QWidget6QFlagsIN2Qt10WindowTypeEE'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x148): undefined reference to `_imp___ZN9QTextEditC1EP7QWidget'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x16d): undefined reference to `_imp___ZNK11QMetaObject2trEPKcS1_'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x17b): undefined reference to `_imp___ZN7QWidget14setWindowTitleERK7QString'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x194): undefined reference to `_imp___ZN7QString4freeEPNS_4DataE'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x1a5): undefined reference to `_imp___ZN9QTextEdit11setReadOnlyEb'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x1b2): undefined reference to `_imp___ZN11QDockWidget9setWidgetEP7QWidget'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x1eb): undefined reference to `_imp___ZN11QDockWidgetC2EP7QWidget6QFlagsIN2Qt10WindowTypeEE'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x208): undefined reference to `_imp___ZN9QTextEditC1EP7QWidget'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x22d): undefined reference to `_imp___ZNK11QMetaObject2trEPKcS1_'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x23b): undefined reference to `_imp___ZN7QWidget14setWindowTitleERK7QString'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x254): undefined reference to `_imp___ZN7QString4freeEPNS_4DataE'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x265): undefined reference to `_imp___ZN9QTextEdit11setReadOnlyEb'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x272): undefined reference to `_imp___ZN11QDockWidget9setWidgetEP7QWidget'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x2bf): undefined reference to `_imp___ZN7QString16fromAscii_helperEPKci'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x2ef): undefined reference to `_imp___ZN7QString6appendERKS_'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x32d): undefined reference to `_imp___ZN7QString16fromAscii_helperEPKci'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x35d): undefined reference to `_imp___ZN7QString6appendERKS_'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x384): undefined reference to `_imp___ZN7QString4freeEPNS_4DataE'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x399): undefined reference to `_imp___ZN7QString16fromAscii_helperEPKci'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x3c9): undefined reference to `_imp___ZN7QString6appendERKS_'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x3f4): undefined reference to `_imp___ZN7QString4freeEPNS_4DataE'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x40d): undefined reference to `_imp___ZN7QString16fromAscii_helperEPKci'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x43d): undefined reference to `_imp___ZN7QString6appendERKS_'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x464): undefined reference to `_imp___ZN7QString4freeEPNS_4DataE'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x475): undefined reference to `_imp___ZN7QString4freeEPNS_4DataE'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x481): undefined reference to `_imp___ZN7QString4freeEPNS_4DataE'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x494): undefined reference to `_imp___ZN7QString4freeEPNS_4DataE'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x4a5): undefined reference to `_imp___ZN7QString4freeEPNS_4DataE'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x4b5): more undefined references to `_imp___ZN7QString4freeEPNS_4DataE' follow
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x4d5): undefined reference to `_imp___ZN7QString16fromAscii_helperEPKci'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x505): undefined reference to `_imp___ZN7QString6appendERKS_'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x518): undefined reference to `_imp___ZN7QString4freeEPNS_4DataE'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x535): undefined reference to `_imp___ZN7QString4freeEPNS_4DataE'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x59e): undefined reference to `_imp___ZN16QCoreApplication9postEventEP7QObjectP6QEvent'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x5c0): undefined reference to `_imp___ZN7QString4freeEPNS_4DataE'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x5e3): undefined reference to `_imp___ZN7QString9fromAsciiEPKci'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x60b): undefined reference to `_imp___ZN7QString6insertEiPK5QChari'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x640): undefined reference to `_imp___ZN7QString6appendERKS_'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x65d): undefined reference to `_imp___ZN7QString4freeEPNS_4DataE'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x679): undefined reference to `_imp___ZN7QString16fromAscii_helperEPKci'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x6a8): undefined reference to `_imp___ZN11QMessageBox8criticalEP7QWidgetRK7QStringS4_iii'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x6d5): undefined reference to `_imp___ZN7QString16fromAscii_helperEPKci'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x704): undefined reference to `_imp___ZN11QMessageBox8criticalEP7QWidgetRK7QStringS4_iii'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x737): undefined reference to `_imp___ZN7QString9fromAsciiEPKci'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x75f): undefined reference to `_imp___ZN7QString6insertEiPK5QChari'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x794): undefined reference to `_imp___ZN7QString6appendERKS_'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x7b1): undefined reference to `_imp___ZN7QString4freeEPNS_4DataE'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x7c7): undefined reference to `_imp___ZN7QString4freeEPNS_4DataE'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x7dc): undefined reference to `_imp___ZN7QString4freeEPNS_4DataE'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x7ed): undefined reference to `_imp___ZN7QString4freeEPNS_4DataE'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x7fd): undefined reference to `_imp___ZN7QString4freeEPNS_4DataE'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x8a1): undefined reference to `_imp___ZN6QMutex12lockInternalEv'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x8b1): undefined reference to `_imp___ZN6QMutex4lockEv'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x8dd): undefined reference to `_imp___ZN6QMutexC1ENS_13RecursionModeE'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x925): undefined reference to `_imp___ZN6QMutex14unlockInternalEv'
obj/MessageWindow.o:MessageWindow.cpp:(.text+0x938): undefined reference to `_imp___ZN6QMutex6unlockEv'
obj/MessageWindow.o:MessageWindow.cpp:(.text$_ZN12MessageEventD0Ev[MessageEvent::~MessageEvent()]+0x25): undefined reference to `_imp___ZN7QString4freeEPNS_4DataE'
obj/MessageWindow.o:MessageWindow.cpp:(.text$_ZN12MessageEventD0Ev[MessageEvent::~MessageEvent()]+0x2e): undefined reference to `_imp___ZN6QEventD2Ev'


Название: Re: Единый EXE файл
Отправлено: Pupil от Май 24, 2012, 12:44
напишите, пожалуйста, линк на мануал статической сборки не под win, а под Linux. Спасибо!


Название: Re: Единый EXE файл
Отправлено: stima от Май 24, 2012, 15:13
Статической сборки чего?


Название: Re: Единый EXE файл
Отправлено: Bepec от Май 24, 2012, 15:36
Сборки Qt из исходников, видимо...


Название: Re: Единый EXE файл
Отправлено: Alex Custov от Май 24, 2012, 15:40
напишите, пожалуйста, линк на мануал статической сборки не под win, а под Linux. Спасибо!

Статическая сборка под Linux не нужна (как и под Windows).


Название: Re: Единый EXE файл
Отправлено: Bepec от Май 24, 2012, 15:41
А почему не нужна??? Оо


Название: Re: Единый EXE файл
Отправлено: Alex Custov от Май 24, 2012, 16:11
А почему не нужна??? Оо

А ты можешь назвать хоть одну объективную причину для статической сборки для обычной программы, кроме "я так хочу"? Я тоже как-то пробовал статику, результаты мне не понравились. http://www.prog.org.ru/topic_21069_0.html


Название: Re: Единый EXE файл
Отправлено: Bepec от Май 24, 2012, 16:47
Очень просто - портабельность программы. Те же мобильные платформы "всё в 1".

Конечно быстродействие и прочее, но в некоторых программах даже пятисекундное замедление не играет роли, тем более если искусно скрыто ;)


Название: Re: Единый EXE файл
Отправлено: Alex Custov от Май 24, 2012, 17:46
Очень просто - портабельность программы.

Интересно, а как статика улучшает портабельность? Я не говорю сейчас о мобильных платформах, почти все вопросы о статике тут были для десктопа.


Название: Re: Единый EXE файл
Отправлено: Bepec от Май 24, 2012, 19:04
Очень просто, проверь что копируется быстрее - один большой файл, или много маленьких :D

Мне лично удобнее гораздо иметь каталог 'Программ', которые не тянут за собой сотни и сотни файлов ;)


Название: Re: Единый EXE файл
Отправлено: kambala от Май 24, 2012, 19:16
Очень просто, проверь что копируется быстрее - один большой файл, или много маленьких :D
много - это штук 5?

а ещё можно распространять в архиве
Мне лично удобнее гораздо иметь каталог 'Программ', которые не тянут за собой сотни и сотни файлов ;)
переходи на мак ос :) но там всё равно сотни файлов находятся внутри пакетов программ.


Название: Re: Единый EXE файл
Отправлено: Alex Custov от Май 24, 2012, 19:43
Очень просто, проверь что копируется быстрее - один большой файл, или много маленьких :D

Какое отношение имеет скорость копирования файлов к портабельности? О чём вообще речь, где я? ::) Будут, в конце концов, аргументы за статическую сборку?

Мне лично удобнее гораздо иметь каталог 'Программ', которые не тянут за собой сотни и сотни файлов

Лично у меня нет ни одной standalone программы, всё установлено через инсталляторы. И я считаю это дурным тоном, распространять программы исключительно в виде standalone. Эта дурацкая практика приводит к тому, что уже и в линуксе хотят статическую сборку, когда на это нет никаких причин, но просто такая привычка.


Название: Re: Единый EXE файл
Отправлено: Bepec от Май 24, 2012, 19:54
Кхм. Камбала - у меня самая большая программа на флешке - штук 300 файликов :)

Alex Gustov -  я тебе привожу  аргумент :D

Портабельность - возможность переноса программы, без излишних телодвижений.

Когда я хочу программу использовать на разных компьютерах - приходится таскать на флешке установщик ;)

Камбала - спасибо за информацию, незнал. Но я привожу аргумент, необходимый достаточно редко, но иногда действительно необходимый ;)



Название: Re: Единый EXE файл
Отправлено: Alex Custov от Май 24, 2012, 20:00
Портабельность - возможность переноса программы, без излишних телодвижений.

Это какое-то новое определение портабельности ::)

Когда я хочу программу использовать на разных компьютерах - приходится таскать на флешке установщик ;)

Для своего проекта я распространяю установщик и standalone динамическую программу, standalone программа лежит внутри каталога с нужными библиотеками, не вижу никаких проблем. Это все аргументы, да?  ;D


Название: Re: Единый EXE файл
Отправлено: Alex_C от Май 25, 2012, 22:41
Вы кстати зря на Верес накинулись - одно из основных требований к моей программе - портабельность - возможность работать с флешки не обращаясь к компу вообще. Мое виденье ситуации - под виндой проблем как не было, так и нет - да, к проге добавляются Qt-dll - без проблем. А вот под Линуксом вроде как проблемы по этому поводу намечаются. Очень бы хотел, чтоб меня по этому поводу разубедили.


Название: Re: Единый EXE файл
Отправлено: kambala от Май 26, 2012, 00:00
не обращаясь к компу вообще
ты правда в это веришь? :)


Название: Re: Единый EXE файл
Отправлено: Alex_C от Май 26, 2012, 00:11
ты правда в это веришь? :)

это правда работает)) Да конечно  - фраза несколько не правильная. но смысл ясный)))  
Тут дело конечно на самом деле несколько ... глубже что ли... Программ с возможностью работать от флешки и не оставлять следы на компе - все меньше и меньше. К сожалению такая политика Майкрософт.


Название: Re: Единый EXE файл
Отправлено: Bepec от Май 28, 2012, 07:15
Накинулись меня разубеждать, но... Зачем? :)

Я же привёл веский (доо), чёткий (угум), ясный(ага) аргумент(именно его).

Он не требует подтверждения или опровержения ;) Он весом для меня и многих. И ваше мнение не сделает его им и мне ненужным ;)

to Alex Custov:
Цитировать
Портабельность - (портируемость,переносимость, англ. portability) термин, обозначающий переносимость программного обеспечения.
из вики.

А одно из свойств портабельности - скорость записи/переноса на съёмные носители ;)

Возможно неточен в формулировках, но я не на филолога учусь :)

PS ты мне ещё поотрицай, что скорость записи/переноса сотен мелких файлов и одного большого файла (равноценный вес множества и одного файла) различаются ;)


Название: Re: Единый EXE файл
Отправлено: Alex Custov от Май 28, 2012, 11:45
Это разговор ни о чём, ты придумал какие-то новые определения и размахиваешь ими как флагом.

Цитировать
Портабельность - (портируемость,переносимость, англ. portability) термин, обозначающий переносимость программного обеспечения.
из вики.

А одно из свойств портабельности - скорость записи/переноса на съёмные носители ;)

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

PS ты мне ещё поотрицай, что скорость записи/переноса сотен мелких файлов и одного большого файла (равноценный вес множества и одного файла) различаются ;)

А в случае с динамической сборкой какое это имеет значение? Там 5-10 файлов, включая плагины SQL и кодеки изображений. Ты хочешь экономить время на копировании одного файла вместо пяти, да?


Название: Re: Единый EXE файл
Отправлено: V1KT0P от Май 28, 2012, 12:05
Портабельность - это возможность портировать с или без усилий программу с одной системы на другую, никакого отношения к копированию файлов это не имеет.
Вот с википедии скопипастил:
Цитировать
Переносимое приложение (англ. portable application, portable app) — программное обеспечение, которое для своего запуска не требует процедуры инсталляции на жесткий диск компьютера, и может полностью храниться на съемных носителях информации, таких как CD-ROM, USB flash drive, флэш-картах и даже на дискете, что позволяет использовать данное ПО на многих компьютерах.


Название: Re: Единый EXE файл
Отправлено: Bepec от Май 28, 2012, 12:12
Густав - это ты не путай :)

Портирование и Портабельность.

Портирование - с одной ОС на другую.
Портабельность - запуск без установки, малый размер, возможность запуска со сменных носителей.

;)


Название: Re: Единый EXE файл
Отправлено: kambala от Май 28, 2012, 16:09
Верес, это ты не путай. То, что ты пытаешься донести, называется переносимостью (предлагаю в словарь англо-русский заглянуть), а портабельность - это возможность совершить портирование.

И про малый размер тоже ты что-то выдумал, как и про скорость копирования.


Название: Re: Единый EXE файл
Отправлено: Alex Custov от Май 28, 2012, 16:10
Прочитай мой ник внимательнее, я не Густав или Густов.

Ok, я перепутал. С учётом того, что скорость записи практически на все ФС на HDD исчисляется десятками мегабайт, такой проблемы как копирование 10-15 мегабайт просто нет.


Название: Re: Единый EXE файл
Отправлено: Bepec от Май 28, 2012, 16:39
Камбала, ну убеди меня, что portable (переносимая) не является исходником портабельности.

И про малый размер тоже ты что-то выдумал, как и про скорость копирования.
Млиать. Ну почему ты не видишь очевидного...

Возми 3000 файлов весом 1 гигабайт. Запиши их на флешку и сравни время.

Возми 1 файл весом 1 гигабайт. Запиши его на флешку и сравни время.

Время 1 файла  будет МЕНЬШЕ.

 Чем МЕНЬШЕ время переноса, тем приложение БОЛЕЕ портабельное. Как бы ты не хотел, но ПОРТАБЕЛЬНОСТЬ пропорционально зависит от скорости переноса приложения куда-либо.
Вот почему БОЛЬШИНСТВО не хочет читать и понимать?
Цитировать
Портируемость (переносимость, англ. portability) обычно относится к одной из двух вещей:
Портируемость — как возможность единожды откомпилировав код (обычно в некоторый промежуточный код, который затем интерпретируется или компилируется во время исполнения, «на лету», англ. Just-In-Time[2]), затем запускать его на множестве платформ без каких-либо изменений.
Портируемость — как свойство программного обеспечения, описывающее, насколько легко это ПО может быть портировано. По мере развития операционных систем, языков и техники программирования, становится всё проще портировать программы между различными платформами. Одной из изначальных целей создания языка Си и стандартной библиотеки этого языка — была возможность простого портирования программ между несовместимыми аппаратными платформами. Дополнительные преимущества в плане портируемости могут иметь программы, удовлетворяющие специальным стандартам и правилам написания (см., например: Smart Package Manager).

Портирование(porting) и Портабельность(portable) - РАЗНЫЕ блин вещи, неверяхи вы такие.


Название: Re: Единый EXE файл
Отправлено: V1KT0P от Май 28, 2012, 17:17
Портирование(porting) и Портабельность(portable) - РАЗНЫЕ блин вещи, неверяхи вы такие.
Это все из-за сленга состоящего из английских слов написанных русскими буквами, что влечет за собой непонимание друг друга.


Название: Re: Единый EXE файл
Отправлено: kambala от Май 28, 2012, 17:21
я где-то уже писал, что распространять можно в архиве - вот тебе и один файл. а архивирование ещё и размер может уменьшить. или конечные пользователи даже не знают как разархивировать файл?
То, что ты пытаешься донести, называется переносимостью
а никак не портабельностью (такого слова-то даже в русском нету).

а когда ты обновляешь своё приложение, то заставляешь пользователей качать огромный файл, а при динамической сборке обычно достаточно лишь само приложение выложить - библиотеки скорее всего подойдут и старые.


Название: Re: Единый EXE файл
Отправлено: Bepec от Май 28, 2012, 17:55
Камбала блин. Тебе говорят о ПОРТАБЕЛЬНОСТИ.. ПЕРЕНОСИМОСТИ.

Вставил флешку => запустил => поработал => скинул на другую флешку => уехал на велосипеде.

А не вставил флешку => скачал архиватор => распаковал на флешку(мы же портабельны, нельзя на жёсткий), в это время попил чаю, сходил в ванну и почистил заржавевший велосипед, состарился и закопался.

Обновление с использованием своего обновлятора (этого слова тоже нет, но назло буду использовать), конечно будет проблематично, нооо... МЫ ГОВОРИМ О ПОРТАБЕЛЬНОСТИ, а не о "возможности обновления".

"Приобретая одно, теряешь другое. Можно спорить бесконечно, но этот закон нарушить нельзя." ©

Портабельность повышена - ДА. Возможность обновления частями утеряна - ДА.

Это не плохо. Это не хорошо. Это - данность.

PS Слов kambala / динамика в русском тоже не было. Но они есть  хе хе .