как собрать проект QT creator c boost и libtorrent

PooH

нужно внести пару изменений в проект, создатель вне пределов доступности
проект на c++
по словам его создателя он писался в qt creator
также в проекте используется boost (что именно не знаю) и libtorrent
boost и libtorrent лежат в папке includes в виде cpp и hpp файлов
насколько я понял, сначала надо собрать буст, потом libtorrent, а потом сам проект
напрямую из qt creator'а проект не собирается - вылезает куча ворнингов LINK4229 и ошибок LINK2005
кто может помочь?
до сего момента дел с c++ не имел

PooH

сейчас ставлю себе boost (b2 install)
все делаю под окошками

doublemother

по словам его создателя он писался в qt creator
также в проекте используется boost (что именно не знаю) и libtorrent
Страшное ощущение, что ты собираешь личкрафты.

PooH

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

PooH

короче, при сборке из qt creator (профиль qt4.8.0 for desctop - msvc2010) инструментарий MSVC++ compiler вываливается куча ошибок:
 
 bgmmainwindow.obj:-1: ошибка: LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(struct std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::_Has_debug_it)" (__imp_?0?$baDU?$c@V?$@@U_Ha@Z) 

я так понимаю, что это что-то где-то не подключилось?

doublemother

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

okis

Перепутались опции сборки: http://social.msdn.microsoft.com/Forums/en-IN/vcgeneral/thre...
Вообще, нужно будет не один раз потыкаться, чтобы понять, как такая штука собирается правильно, так что советую расчехлить гугл ;)

PooH

мне в каком направлении копать?
проект загружаю из svn, так что нет возможности увидеть, какими настройками пользовался разраб - в репозитории нет .user файла

okis

user это вообще настройки ide, по-моему, все это в sln должно быть
Check that all your compiler settings refer to the same runtime libraries. Probably everything should be Debug Multithreaded DLL in debug mode and Multithreaded DLL in release mode.

elenangel

qmake && make пробовал?

PooH

как попробовать?
из консоли?
qtc предлагает qmake + jom
или qmake + nmake
ну или там можно как угодно настроить:

PooH

 
# -------------------------------------------------
# Project created by QtCreator 2011-02-02T13:53:59
# -------------------------------------------------
CONFIG += qt
QT += core \
gui \
network \
xml \
webkit
TARGET = xxownloader
TEMPLATE = app
SOURCES += main.cpp \
config.cpp \
downloader.cpp \
torrent.cpp \
bgmlogin.cpp \
bgmmainwindow.cpp \
gamebutton.cpp \
progressbar.cpp \
helpers.cpp \
dragablewidget.cpp \
updater.cpp \
cookiejar.cpp
HEADERS += \
config.h \
downloader.h \
torrent.h \
bgmlogin.h \
bgmmainwindow.h \
gamebutton.h \
progressbar.h \
helpers.h \
dragablewidget.h \
updater.h \
cookiejar.h
FORMS += \
bgmlogin.ui \
bgmmainwindow.ui

DEFINES += BOOST_ALL_NO_LIB BOOST_ASIO_HASH_MAP_BUCKETS=1021 BOOST_EXCEPTION_DISABLE BOOST_FILESYSTEM_VERSION=2 BOOST_SYSTEM_STATIC_LINK=1 BOOST_THREAD_USE_LIB=1 TORRENT_DISABLE_GEO_IP TORRENT_USE_OPENSSL UNICODE WIN32 WIN32_LEAN_AND_MEAN _CRT_SECURE_NO_DEPRECATE _FILE_OFFSET_BITS=64 _SCL_SECURE_NO_DEPRECATE _UNICODE _WIN32 _WIN32_WINNT=0x0500 __USE_W32_SOCKETS

INCLUDEPATH += ./include

LIBS += -lws2_32 -lwsock32 -lgdi32 -luser32 -ladvapi32 -lpsapi -lshell32
QMAKE_CXXFLAGS += /Zc:forScope /wd4503 /wd4275 /wd4251 /EHs

QMAKE_CXXFLAGS_RELEASE += -DNDEBUG /MD
QMAKE_CXXFLAGS_DEBUG += -DTORRENT_DEBUG /MDd

QMAKE_LFLAGS_RELEASE += ./libs/libboost_system-vc-mt-1_48.lib ./libs/libboost_filesystem-vc-mt-1_48.lib ./libs/libboost_thread-vc-mt-1_48.lib
QMAKE_LFLAGS_RELEASE += ./libs/libeay32MT.lib ./libs/ssleay32MT.lib
QMAKE_LFLAGS_RELEASE += ./libs/libtorrent.lib
QMAKE_LFLAGS_RELEASE += /OPT:ICF=5 /OPT:REF

QMAKE_LFLAGS_DEBUG += ./libs/libboost_system-vc-mt-gd-1_48.lib ./libs/libboost_filesystem-vc-mt-gd-1_48.lib ./libs/libboost_thread-vc-mt-gd-1_48.lib
QMAKE_LFLAGS_DEBUG += ./libs/libeay32MTd.lib ./libs/ssleay32MTd.lib
QMAKE_LFLAGS_DEBUG += ./libs/libtorrentd.lib


RESOURCES += \
rsrc.qrc

OTHER_FILES += \
images/form/gamebutton.png \
images/form/bgmain.png \
images/form/popolnit.png \
images/form/settings.png \
images/form/play.png \
images/form/scroll.png \
images/form/gamebutton_a.png \
images/form/download.png \
images/form/reg.png \
images/form/enter.png \
images/form/checkbox.png \
images/form/zapomnit.png \
images/form/zabyli.png \
images/form/email.png \
images/form/password.png \
images/form/input.png \
images/form/bgmain2.png \
images/form/ukazatel.png \
images/form/kod.png \
images/form/input2.png \
images/form/ent.png \
images/form/reg_acc.png \
images/form/checkbox_c.png \
images/form/popolnit.png \
images/form/settings.png \
images/form/play.png \
images/form/scroll.png \
images/form/download.png \
images/form/reg.png \
images/form/enter.png \
images/form/checkbox.png \
images/form/zapomnit.png \
images/form/zabyli.png \
images/form/email.png \
images/form/password.png \
images/form/input.png \
images/form/bgmain2.png \
images/form/ukazatel.png \
images/form/kod.png \
images/form/input2.png \
images/form/ent.png \
images/form/reg_acc.png \
images/form/progressbar_bg.gif \
images/form/progressbar_grey_bg.gif \
images/form/download_1.png \
images/form/up.png \
images/form/down.png \
images/form/close.png \
images/form/minimize.png \
images/form/checkbox_c.png \
images/form/menu_bg.png \
images/form/progressbar.gif \
images/form/bgmain.png \
images/form/gamebutton.png \
images/form/gamebutton_a.png \
images/form/gamebutton_hover.png \
images/icons/bgm.ico \
main.css \
bgmlogin.css \
bgmmainwindow.css

RC_FILE = bgm.rc

doublemother

А зачем ты в некоторых местах замазывал GfiDownloader?)

elenangel

*.pro файл имеется?
если да, то просто открой его в qt creator и из меню выбери Сборка->Пересобрать все
по результатам отпишись если не соберется, дальше можно будет уже по сообщениям сборки смотреть

PooH

 
main.obj:-1: ошибка: LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(struct std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::_Has_debug_it)" (__imp_?0?$baDU?$c@V?$@@U_Ha@Z) referenced in function "public: __thiscall boost::system::system_error::system_error(class boost::system::error_code,char const *)" (?0sy@VZ)

PooH

Сборка->Пересобрать все
о боже, похоже на то
завтра отпишусь, вроде собралось

PooH

GfiDownloader?)
ну, не знаю - код не мой, как-то просто сливать его не имею права

PooH

завтра отпишусь, вроде собралось
и даже запустилось
какие книжки по c++ рекомендуете?
ООП знаю, но с++ нет
+ что-нибудь на тему сборки-линковки-компиляции

elenangel

на тему сборки-линковки по-началу должно хватить просто возможностей qt creator
по c++ - www.cplusplus.com/
в плане туториала не знаю, но кажется там описаны основные конструкции языка
а как справка по стандартной библиотеке c++ я его все время использую. это если писать на голом C++
если использовать Qt - встроенная в qtcreator дока хороша

PooH

спасибо :D
Оставить комментарий
Имя или ник:
Комментарий: