Название: Как правильно подключить libssh к проекту Qt в Windows? Отправлено: xintrea от Июль 01, 2016, 16:52 Пытаюсь собрать проект X2GO Client под WIndows с целью пофиксить баг буфера обмена (не передается кириллица с Linux-сервера на Windows-клиент). Беру исходники отсюда:
Код: git clone git://code.x2go.org/x2goclient.git Специально для данного проекта сделал среду Qt 4.8.6 + Qt Creator 4.0.2 + MinGw 4.8.2. Всю последовательность действий записал в статью: Установка и настройка комплекта Qt 4.8.6, Qt Creator 4.0.2 и MinGw 4.8.2 под Windows (http://webhamster.ru/mytetrashare/index/mtb0/1467373927r5m8rqalnb) Теперь надо собрать проект. Для компиляции нужна библиотека libssh. Беру ее со страницы: https://red.libssh.org/projects/libssh/files Взял файл: https://red.libssh.org/attachments/download/179/libssh-0.7.2-mingw.zip . Распаковал содержимое в каталог: Код: C:\tools\libssh Таким образом, заголовок libssh.h лежит по следующему пути: Код: C:\tools\libssh\libssh-0.7.2\include\libssh\libssh.h А библиотека лежит по пути: Код: C:\tools\libssh\libssh-0.7.2\lib\libssh.dll.a Далее в Qt Creator воспользовался контекстным меню "Добавить библиотеку...". В результате, в PRO-файл прописались опции: Код: win32:CONFIG(release, debug|release): LIBS += -L$$PWD/C:/tools/libssh/libssh-0.7.2/lib/ -llibssh.dll Однако, компиляция не идет. Ошибка следующая: Код: g++ -c -pipe -O2 -frtti -fexceptions -mthreads -Wall -Wextra -DUNICODE -DCFGCLIENT -DQT_NO_DEBUG -DQT_SVG_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"c:\tools\qt\qt_4_8_6\include\QtCore" -I"c:\tools\qt\qt_4_8_6\include\QtNetwork" -I"c:\tools\qt\qt_4_8_6\include\QtGui" -I"c:\tools\qt\qt_4_8_6\include\QtSvg" -I"c:\tools\qt\qt_4_8_6\include" -I"..\x2go_client\src" -I"d:\Stepanov\code\cpp\x2go_client\C:\tools\libssh\libssh-0.7.2\include" -I"c:\tools\qt\qt_4_8_6\include\ActiveQt" -I"release" -I"." -I"..\x2go_client" -I"." -I"c:\tools\qt\qt_4_8_6\mkspecs\win32-g++" -o release\sharewidget.o ..\x2go_client\src\sharewidget.cpp Вопрос: что не так делаю? Как заставить компилироваться проект с libssh? Название: Re: Как правильно подключить libssh к проекту Qt в Windows? Отправлено: kambala от Июль 01, 2016, 17:43 а qmake выполнил после добавления?
Название: Re: Как правильно подключить libssh к проекту Qt в Windows? Отправлено: Old от Июль 01, 2016, 17:53 Вопрос: что не так делаю? Как заставить компилироваться проект с libssh? Вас пути не смущают? Код: win32:CONFIG(release, debug|release): LIBS += -L$$PWD/C:/tools/libssh/libssh-0.7.2/lib/ -llibssh.dll Уберите $$PWD/ из путей. Название: Re: Как правильно подключить libssh к проекту Qt в Windows? Отправлено: xintrea от Июль 01, 2016, 22:03 Уберите $$PWD/ из путей. Убрал, строки в PRO-файле стали выглядеть так: Код: win32:CONFIG(release, debug|release): LIBS += -LC:/tools/libssh/libssh-0.7.2/bin/ -llibssh.dll Компиляция пошла, но похоже, что теперь затык на линковке: Код: g++ -Wl,-s -mthreads -Wl,-subsystem,windows -o release\x2goclient.exe object_script.x2goclient.Release -L"c:\tools\qt\qt_4_8_6\lib" -lmingw32 -lqtmain release\x2goclient_res.o -lssh -lAdvAPI32 -lshell32 -lUser32 -lwinspool -lws2_32 -LC:/tools/libssh/libssh-0.7.2/bin/ -llibssh.dll -lQtSvg4 -lQtGui4 -lQtNetwork4 -lQtCore4 Я попробовал заменить Код: C:/tools/libssh/libssh-0.7.2/lib/ на Код: C:/tools/libssh/libssh-0.7.2/bin/ так как в /lib лежит файл libssh.dll.a, а в /bin лежит просто libssh.dll, но и так и так линковка не идет. Как побороть? Название: Re: Как правильно подключить libssh к проекту Qt в Windows? Отправлено: Old от Июль 01, 2016, 22:20 Попробуйте прописать путь до директории lib и имя библиотеки задать -lssh.dll
Название: Re: Как правильно подключить libssh к проекту Qt в Windows? Отправлено: xintrea от Июль 02, 2016, 11:56 Название: Re: Как правильно подключить libssh к проекту Qt в Windows? Отправлено: Old от Июль 02, 2016, 12:08 Где прописать? Так сделайте:Код: win32:CONFIG(release, debug|release): LIBS += -LC:/tools/libssh/libssh-0.7.2/lib/ -lssh.dll Название: Re: Как правильно подключить libssh к проекту Qt в Windows? Отправлено: Alex Custov от Июль 02, 2016, 22:05 надо просто -lssh
Название: Re: Как правильно подключить libssh к проекту Qt в Windows? Отправлено: Old от Июль 03, 2016, 06:04 надо просто -lssh mingw сам "додумывает" до .dll.a?Название: Re: Как правильно подключить libssh к проекту Qt в Windows? Отправлено: xintrea от Июль 03, 2016, 22:06 mingw сам "додумывает" до .dll.a? Скомпилировать получилось. Но запуск не работает. Происходит сегфолт (точнее, похоже, что выход с ошибкой в неизвестном коде) еще до вызова функции main(): http://i.piccy.info/i9/f22649e03122a602dc0db92b120f1a48/1467572668/173469/825956/scr_386.png В чем может быть проблема? Название: Re: Как правильно подключить libssh к проекту Qt в Windows? Отправлено: Old от Июль 04, 2016, 08:03 В чем может быть проблема? При запуске все dll доступны (лежат рядом с exe или доступны по PATH)? |