Просмотр полной версии : 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
Скомпиль статически ;)
в том то и дело что я не знаю как... можешь объяснить пошагово как че делать.
да, как сделать чтобы с прогой не надо было держать QtGuid4.dll - 143 мб ?
в релизе та же хрень получается...
\\ChaOs//
03.01.2010, 14:07
в релизе та же хрень получается...
В .pro допиши строчку CONFIG += release
попробую спасибо! еще такой вопрос, присабачил я 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
Не совсем понял что ты имееш ввиду.
я использовал 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 но тоже не работает. не знаю что еще можно сделать...
и вот так пробывал LIBS += -LC:/MinGW/lib -libcurl.a -libcurldll.a и все равно #include "curl/curl.h" пишет unresolved inclision "curl/curl.h"
\\ChaOs//
04.01.2010, 00:32
и вот так пробывал LIBS += -LC:/MinGW/lib -libcurl.a -libcurldll.a и все равно #include "curl/curl.h" пишет unresolved inclision "curl/curl.h"
Путь до хидеров укажи, либо скопируй их в %QTDIR%\include\
где этот путь прописывать, тоже в .pro ???
кое что начинаю понимать, библиотеки подключены(потому что во вкладке libraries есть курловские библиотеки), походу этой строкой - LIBS += -LC:\MinGW\lib -libcurl -libcurldll
значит точно не хватает хидеров... теперь понять куда их поместить)))) или где путь прописать)))
вроде разобрался, но пока не буду хвастать, пишите кто знает пока... если ща соберется все то отпишусь...
фигня какая то... ни на че не ругается, 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
повторюсь ни одна строка кода не подчеркивается, получается не в коде проблема...
в .pro файле прописал LIBS += -LC:\MinGW\lib -libcurl -libcurldll
хедеры присоединил, воткнул папку curl (с хедерами) в Qt\4.4.1\include\curl
библиотеки приделаны тоже, во вкладке libraries ->libcurl.a и libcurldll.a
и все равно вот эти ошибки... ниче не пойму...
ща заметил, что если убрать хедер 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" и все отлично... че за хрень такая...
пишут что это баг Qt
http://niftools.sourceforge.net/forum/viewtopic.php?f=4&p=15485
да уж, присоединять все сложно еще и Кт походу тупое... никак не пойму...
2 eldar85 Обнови фреймворк до 4.6 возможно проблема исчезнет.
спасибо за совет, попробую))
уже думаю может в Qt creator как то запихать libcurl. Кто нибудь пробывал?
Зачем тебе курл? не проще использовать средства qt ?
да я привык к нему, к тому же у него очень хорошие показатели... хочется именно с курлом. Да и примеры все хакерские имеено в курле приведены... мне пока будет легче именно с ним, постепенно освою Qhttp, но сразу все - осваивать, не могу себе позволить, времени не хватает...
слушай а средства Qt: QNetworkAccessManager и QHttp содержат все необходимое также как и курл?
_http://doc.trolltech.com/4.6/qnetworkaccessmanager.html
да уж нужно будет покапаться... просто не хотелось бы делать шаг назад если он не сможет работать так же как курл.
Я помню побывал библиотеки qt asppak жать и он хорошо с этим справился не помню на с кока сжал но сжал хорошо я еще удивился!
и все же присоединил я курл к Qt)))
только вот похоже придется менять все в коде моих прог по курлу...
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot