Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Qt - приложение требует 120 мб библиотек (https://forum.antichat.xyz/showthread.php?t=167629)

eldar85 02.01.2010 01:00

Qt - приложение требует 120 мб библиотек
 
сделал гуи-приложение на Qt 4.5 по этому уроку

http://doc.crossplatform.ru/qt/4.5.0/tutorials-addressbook.html


из Qt Creator запускается и работает нормально
если открыть в проводнике папку release и запустить exe оттуда - пишет что не найдена библиотека "libgcc_s_dw2-1.dll"

нашел её в C:\Qt\2009.05\mingw\bin\

если добавить, требует QtGui.dll и ещё 3-4 библиотеки

проблема в том, что в итоге все вместе весит больше 120 мб!

что я не сделал?

POS_troi 02.01.2010 03:13

Скомпиль статически ;)

eldar85 02.01.2010 17:49

в том то и дело что я не знаю как... можешь объяснить пошагово как че делать.

Дикс 02.01.2010 21:01

да, как сделать чтобы с прогой не надо было держать QtGuid4.dll - 143 мб ?

nerezus 03.01.2010 00:42

Собирать в релизе.

eldar85 03.01.2010 02:33

в релизе та же хрень получается...

\\ChaOs// 03.01.2010 14:07

Цитата:

Сообщение от eldar85
в релизе та же хрень получается...

В .pro допиши строчку CONFIG += release

eldar85 03.01.2010 18:13

попробую спасибо! еще такой вопрос, присабачил я Qt в Eclipse - работает все отлично. Приложения также как и в Qt creator собираются, но у меня в эклипсе есть boost и libcurl, они отлично работают без Qt, хотел собрать ГУИ окно, чтобы с сетью через Курл работало, а библиотека libcurl никак не цепляется. если в обычной проге все легко - http://www.lsdeex.ru/archives/3 то когда делаешь КТ окно, так же сделать не получается. подскажите кто знает что можно сделать. как библиотеки (а именно libcurl) присоединять либо в Qt creator, а лучше в Эклипс с Qt.

POS_troi 03.01.2010 19:10

Не совсем понял что ты имееш ввиду.

eldar85 03.01.2010 22:19

я использовал libcurl и boost в Эклипсе в консоле все работало отлично, соединял библиотеки libcurl, boost как тут http://www.lsdeex.ru/archives/3 .Каждый раз когда начинаешь новый проект, нужно Курл вот так присоединять:

Создай новый проект, открой его свойства Project->Properties

Вкладка C/C++ Build -> Settings

На вкладке Tool Settings: GCC C++ Complier -> Miscellaneous добавь флаг
-DCURL_STATICLIB

Чуть ниже, MinGW C++ Linker->Libraries

добавь туда библиотеки (важен порядок в котором они расположены!)
curl
wsock32
wldap32
//================================================== ============
а теперь еще к эклипсу присоединил Qt как тут - http://habrahabr.ru/blogs/development/30636/
тоже работает, окна собираются.

Но если я хочу собрать окно на Qt чтобы оно использовало libcurl то Курл не получается присоединить потому что в Project->Properties нету вкладок C/C++ Build -> Settings.
Пробывал прописывать в файле .pro LIBS += -LC:/MinGW/lib -libcurl -libcurldll но тоже не работает. не знаю что еще можно сделать...

eldar85 03.01.2010 23:56

и вот так пробывал LIBS += -LC:/MinGW/lib -libcurl.a -libcurldll.a и все равно #include "curl/curl.h" пишет unresolved inclision "curl/curl.h"

\\ChaOs// 04.01.2010 00:32

Цитата:

Сообщение от eldar85
и вот так пробывал LIBS += -LC:/MinGW/lib -libcurl.a -libcurldll.a и все равно #include "curl/curl.h" пишет unresolved inclision "curl/curl.h"

Путь до хидеров укажи, либо скопируй их в %QTDIR%\include\

eldar85 04.01.2010 01:07

где этот путь прописывать, тоже в .pro ???

eldar85 04.01.2010 01:41

кое что начинаю понимать, библиотеки подключены(потому что во вкладке libraries есть курловские библиотеки), походу этой строкой - LIBS += -LC:\MinGW\lib -libcurl -libcurldll
значит точно не хватает хидеров... теперь понять куда их поместить)))) или где путь прописать)))

eldar85 04.01.2010 03:22

вроде разобрался, но пока не буду хвастать, пишите кто знает пока... если ща соберется все то отпишусь...

eldar85 04.01.2010 04:05

фигня какая то... ни на че не ругается, curl/curl.h подключено, на него не показывает как на ошибку, ни одна строка не подчеркивается все вроде отлично, при компиляции вот такое выдает:


mingw32-make debug
mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory `C:/Users/Эл/workspace/qt4'
g++ -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"..\..\..\..\Qt\4.4.1\include\QtCore" -I"..\..\..\..\Qt\4.4.1\include\QtCore" -I"..\..\..\..\Qt\4.4.1\include\QtGui" -I"..\..\..\..\Qt\4.4.1\include\QtGui" -I"..\..\..\..\Qt\4.4.1\include" -I"c:\Qt\4.4.1\include\ActiveQt" -I"debug" -I"." -I"..\..\..\..\Qt\4.4.1\mkspecs\win32-g++" -o debug\main.o main.cpp
In file included from C:/mingw/bin/../lib/gcc/mingw32/3.4.5/../../../../include/windows.h:50,
from C:/mingw/bin/../lib/gcc/mingw32/3.4.5/../../../../include/winsock2.h:22,
from ../../../../Qt/4.4.1/include/curl/curl.h:67,
from main.cpp:6:
C:/mingw/bin/../lib/gcc/mingw32/3.4.5/../../../../include/winbase.h:1689: error: declaration of C function `LONG InterlockedCompareExchange(volatile LONG*, LONG, LONG)' conflicts with
../../../../Qt/4.4.1/include/QtCore/../../src/corelib/arch/qatomic_windows.h:393: error: previous declaration `long int InterlockedCompareExchange(long int*, long int, long int)' here
C:/mingw/bin/../lib/gcc/mingw32/3.4.5/../../../../include/winbase.h:1693: error: declaration of C function `LONG InterlockedDecrement(volatile LONG*)' conflicts with
../../../../Qt/4.4.1/include/QtCore/../../src/corelib/arch/qatomic_windows.h:395: error: previous declaration `long int InterlockedDecrement(long int*)' here
C:/mingw/bin/../lib/gcc/mingw32/3.4.5/../../../../include/winbase.h:1694: error: declaration of C function `LONG InterlockedExchange(volatile LONG*, LONG)' conflicts with
../../../../Qt/4.4.1/include/QtCore/../../src/corelib/arch/qatomic_windows.h:396: error: previous declaration `long int InterlockedExchange(long int*, long int)' here
C:/mingw/bin/../lib/gcc/mingw32/3.4.5/../../../../include/winbase.h:1698: error: declaration of C function `LONG InterlockedExchangeAdd(volatile LONG*, LONG)' conflicts with
../../../../Qt/4.4.1/include/QtCore/../../src/corelib/arch/qatomic_windows.h:397: error: previous declaration `long int InterlockedExchangeAdd(long int*, long int)' here
C:/mingw/bin/../lib/gcc/mingw32/3.4.5/../../../../include/winbase.h:1702: error: declaration of C function `LONG InterlockedIncrement(volatile LONG*)' conflicts with
../../../../Qt/4.4.1/include/QtCore/../../src/corelib/arch/qatomic_windows.h:394: error: previous declaration `long int InterlockedIncrement(long int*)' here
mingw32-make[1]: *** [debug/main.o] Error 1
mingw32-make[1]: Leaving directory `C:/Users/Эл/workspace/qt4'
mingw32-make: *** [debug] Error 2

повторюсь ни одна строка кода не подчеркивается, получается не в коде проблема...

eldar85 04.01.2010 04:11

в .pro файле прописал LIBS += -LC:\MinGW\lib -libcurl -libcurldll

хедеры присоединил, воткнул папку curl (с хедерами) в Qt\4.4.1\include\curl
библиотеки приделаны тоже, во вкладке libraries ->libcurl.a и libcurldll.a

и все равно вот эти ошибки... ниче не пойму...

eldar85 04.01.2010 04:57

ща заметил, что если убрать хедер curl/curl.h то ошибка не вылетает... конечно если там кода не написано, просто в пустой мэйн вписываю curl/curl.h - он не подчеркивает что чтото не правельно, а просто выдает при линковке такую хрень

mingw32-make debug
mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory `C:/Users/Эл/workspace/qt2'
g++ -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"..\..\..\..\Qt\4.4.1\include\QtCore" -I"..\..\..\..\Qt\4.4.1\include\QtCore" -I"..\..\..\..\Qt\4.4.1\include\QtGui" -I"..\..\..\..\Qt\4.4.1\include\QtGui" -I"..\..\..\..\Qt\4.4.1\include" -I"c:\Qt\4.4.1\include\ActiveQt" -I"debug" -I"." -I"..\..\..\..\Qt\4.4.1\mkspecs\win32-g++" -o debug\main.o main.cpp
In file included from C:/mingw/bin/../lib/gcc/mingw32/3.4.5/../../../../include/windows.h:50,
from C:/mingw/bin/../lib/gcc/mingw32/3.4.5/../../../../include/winsock2.h:22,
from ../../../../Qt/4.4.1/include/curl/curl.h:67,
from main.cpp:2:
C:/mingw/bin/../lib/gcc/mingw32/3.4.5/../../../../include/winbase.h:1689: error: declaration of C function `LONG InterlockedCompareExchange(volatile LONG*, LONG, LONG)' conflicts with
../../../../Qt/4.4.1/include/QtCore/../../src/corelib/arch/qatomic_windows.h:393: error: previous declaration `long int InterlockedCompareExchange(long int*, long int, long int)' here
C:/mingw/bin/../lib/gcc/mingw32/3.4.5/../../../../include/winbase.h:1693: error: declaration of C function `LONG InterlockedDecrement(volatile LONG*)' conflicts with
../../../../Qt/4.4.1/include/QtCore/../../src/corelib/arch/qatomic_windows.h:395: error: previous declaration `long int InterlockedDecrement(long int*)' here
C:/mingw/bin/../lib/gcc/mingw32/3.4.5/../../../../include/winbase.h:1694: error: declaration of C function `LONG InterlockedExchange(volatile LONG*, LONG)' conflicts with
../../../../Qt/4.4.1/include/QtCore/../../src/corelib/arch/qatomic_windows.h:396: error: previous declaration `long int InterlockedExchange(long int*, long int)' here
C:/mingw/bin/../lib/gcc/mingw32/3.4.5/../../../../include/winbase.h:1698: error: declaration of C function `LONG InterlockedExchangeAdd(volatile LONG*, LONG)' conflicts with
../../../../Qt/4.4.1/include/QtCore/../../src/corelib/arch/qatomic_windows.h:397: error: previous declaration `long int InterlockedExchangeAdd(long int*, long int)' here
C:/mingw/bin/../lib/gcc/mingw32/3.4.5/../../../../include/winbase.h:1702: error: declaration of C function `LONG InterlockedIncrement(volatile LONG*)' conflicts with
../../../../Qt/4.4.1/include/QtCore/../../src/corelib/arch/qatomic_windows.h:394: error: previous declaration `long int InterlockedIncrement(long int*)' here
mingw32-make[1]: *** [debug/main.o] Error 1
mingw32-make[1]: Leaving directory `C:/Users/Эл/workspace/qt2'
mingw32-make: *** [debug] Error 2
а закаментываю строку #include "curl/curl.h" и все отлично... че за хрень такая...

Дикс 04.01.2010 11:06

пишут что это баг Qt

http://niftools.sourceforge.net/forum/viewtopic.php?f=4&p=15485

eldar85 04.01.2010 14:19

да уж, присоединять все сложно еще и Кт походу тупое... никак не пойму...

razb 04.01.2010 14:32

2 eldar85 Обнови фреймворк до 4.6 возможно проблема исчезнет.

eldar85 04.01.2010 14:33

спасибо за совет, попробую))

eldar85 04.01.2010 16:48

не получается ничего...

eldar85 04.01.2010 16:49

уже думаю может в Qt creator как то запихать libcurl. Кто нибудь пробывал?

razb 04.01.2010 18:29

Зачем тебе курл? не проще использовать средства qt ?

eldar85 04.01.2010 21:06

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

eldar85 04.01.2010 22:03

слушай а средства Qt: QNetworkAccessManager и QHttp содержат все необходимое также как и курл?

razb 04.01.2010 23:39

_http://doc.trolltech.com/4.6/qnetworkaccessmanager.html

eldar85 05.01.2010 00:31

да уж нужно будет покапаться... просто не хотелось бы делать шаг назад если он не сможет работать так же как курл.

Akum 06.01.2010 02:26

Я помню побывал библиотеки qt asppak жать и он хорошо с этим справился не помню на с кока сжал но сжал хорошо я еще удивился!

eldar85 06.01.2010 04:10

и все же присоединил я курл к Qt)))

eldar85 09.01.2010 20:53

только вот похоже придется менять все в коде моих прог по курлу...


Время: 11:27