Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: xSpartak от Сентябрь 18, 2009, 19:49



Название: Запуск программы, без требывания библиотек
Отправлено: xSpartak от Сентябрь 18, 2009, 19:49
Здравсвуйте помогите
пользуюсь qt creatorом
написал программу hello world
exe он создал в папке где я сохранил программу, но при запуски требует dll, как сделать что бы он их не требывал? а то как то нехочется копирывать их каждый раз в папку с программой (


Название: Re: Запуск программы, без требывания библиотек
Отправлено: xSpartak от Сентябрь 18, 2009, 19:52
и что это за ошибка?

это если при сборки релиза


Название: Re: Запуск программы, без требывания библиотек
Отправлено: lit-uriy от Сентябрь 18, 2009, 22:38
По поводу ошибки.
Ты скорее всего не ту dll'ку положил к exe'шнику.

Креатор, штатно, собран студией и его, креаторовские dll'ки не трогай. Должен быть каталог с такими же, по именам, dll'ками, но собраными с помощью MinGW32, вот их и надо к своему exe'шнику класть.


Название: Re: Запуск программы, без требывания библиотек
Отправлено: Alp от Сентябрь 22, 2009, 20:58
А prebuilt binaries под винду поставляются только собранные с mingw?


Название: Re: Запуск программы, без требывания библиотек
Отправлено: lit-uriy от Сентябрь 22, 2009, 21:29
>>А prebuilt binaries под винду поставляются только собранные с mingw?
Как бы да, Но есть одно "но". Если качать SDK, что с Креатором. То Креатор там собран студией и с ним(!) в комплекте идут бинари Qt собраные тоже студией ;)


Название: Re: Запуск программы, без требывания библиотек
Отправлено: Alp от Сентябрь 22, 2009, 21:36
Мммм, т.е. если собрать студийным компилятором проехт и подсунуть ему креаторские бинари - будет все хорошо? Это хорошо =)


Название: Re: Запуск программы, без требывания библиотек
Отправлено: lit-uriy от Сентябрь 22, 2009, 22:40
Скорее всего, lib-файлов в комплекте нет, а без них проект не соберёшь, да и qmake нужно, чтобы студией был собран. Я креатором не пользуюсь, посему не помню его комплектность.

Правильный путь - собрать Qt с пмомощью студии. Тогда с помощью неё можно будет и компилировать.
Но не забудь про РедистрибьюторПэкэдж, от мелко-мягких, довешивать к своей программе


Название: Re: Запуск программы, без требывания библиотек
Отправлено: Alp от Сентябрь 23, 2009, 10:53
Скорее всего, lib-файлов в комплекте нет, а без них проект не соберёшь, да и qmake нужно, чтобы студией был собран. Я креатором не пользуюсь, посему не помню его комплектность.

Правильный путь - собрать Qt с пмомощью студии. Тогда с помощью неё можно будет и компилировать.
Но не забудь про РедистрибьюторПэкэдж, от мелко-мягких, довешивать к своей программе

Разве это не нарушит LGPL? Насколько я понимаю, бинарная совместимость будет утеряна? ;-)


Название: Re: Запуск программы, без требывания библиотек
Отправлено: xSpartak от Сентябрь 24, 2009, 22:34
о и вправду 2 комплекта библиотек, те которые в папки /lib не подошли, а те которые /qt/lib подошли )
а можно как нить собирать программу что бы эти библиотеки не нужно было с exe файлом тоскать?


Название: Re: Запуск программы, без требывания библиотек
Отправлено: Alp от Сентябрь 24, 2009, 22:58
о и вправду 2 комплекта библиотек, те которые в папки /lib не подошли, а те которые /qt/lib подошли )
а можно как нить собирать программу что бы эти библиотеки не нужно было с exe файлом тоскать?
Надо пересобрать Qt статически. У тебя не будет dll/so/dylib, а будут lib-файлы, которые будут включаться в результирующий продукт. Правда, если приложение коммерческое будут сложности =)


Название: Re: Запуск программы, без требывания библиотек
Отправлено: xSpartak от Сентябрь 25, 2009, 02:44
а как ему сказать что бы он собирал статически ?
в чем могут быть проблемы? с лицензией? и какие именно и почему?


Название: Re: Запуск программы, без требывания библиотек
Отправлено: Alp от Сентябрь 25, 2009, 13:22
а как ему сказать что бы он собирал статически ?
в чем могут быть проблемы? с лицензией? и какие именно и почему?
1. Навскидку не помню. Вроде бы надо запустить configure.exe -static. После нескольких чашек кофе, обеда и легкого сна будет собрано.
2. http://www.prog.org.ru/topic_10609_0.html


Название: Re: Запуск программы, без требывания библиотек
Отправлено: IGHOR от Сентябрь 25, 2009, 22:30
Когда мне было нужно приложение без зависимостей то помогло WIKI с этого форума:
Сборка Qt без зависимостей (MS Visual Studio) (http://prog.org.ru/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_Qt_%D0%B1%D0%B5%D0%B7_%D0%B7%D0%B0%D0%B2%D0%B8%D1%81%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%28MS_Visual_Studio%29)
Сборка Qt без зависимостей (MinGW) (http://prog.org.ru/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_Qt_%D0%B1%D0%B5%D0%B7_%D0%B7%D0%B0%D0%B2%D0%B8%D1%81%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%28MinGW%29)

Но не могу избавиться от зависимости libmysql.dll при использовании SQLite и MySQL.
И уже после сборки даже assistant.exe не работает без этой dll.
Подскажите как прилинковать libmysql.dll статически?
И наверное это будет полезно добавить инфу об этом в Вики.