将libssh导入Qt

时间:2016-12-12 23:45:53

标签: c++ qt libssh

我目前正在尝试将libssh导入我正在处理的Qt项目中。看来我在项目构建时正确链接了库,但是一旦我运行项目,它就会在真正启动之前崩溃。这使调试变得困难。如果我注释掉这一行:

my_ssh_session = ssh_new();

然后一切都按预期运行,不会发生崩溃。我的.pro文件看起来像

QT += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

QT += sql
QT += script
QT += scripttools
QT += uitools

LIBS += -llibssh

INCLUDEPATH += $$quote(C:\libssh\include)

TARGET = white_wrapper
TEMPLATE = app

SOURCES += main.cpp\
        mainwindow.cpp \
        datafeeder.cpp \
        dbfeeder.cpp \
        xmlhelper.cpp \
        hiddevice.cpp

HEADERS  += mainwindow.h \
         datasource.h \
         datafeeder.h \
         dbfeeder.h \
         xmlhelper.h \
         hiddevice.h

FORMS += mainwindow.ui

在线查看之后看起来问题可能是dll但是在运行dll依赖应用程序之后,看起来我需要所有的dll,所以我想我会输掉一些并希望得到一些感谢。

1 个答案:

答案 0 :(得分:1)

我收到了与libssh-0.7.1,Qt 5.2.1和MinGW相同的错误消息。

经过一番研究后,它发现了libssh 需要另外两个依赖于:libeay32.dllzlib1.dll的动态库。它们不包含在libssh的分发存档中,因此您必须自己下载它们并复制到libssh.dll(或$PATH上的某个地方)旁边。

在我的.pro文件中,我添加了以下行(我使用其安装程序将libssh安装到Program Files(x86)目录中):

# Libssh:
LIBS += -L$$PWD/'../../../../../Program Files (x86)/libssh/lib/' -lssh.dll
INCLUDEPATH += $$PWD/'../../../../../Program Files (x86)/libssh/include'
DEPENDPATH += $$PWD/'../../../../../Program Files (x86)/libssh/include'

现在我的Qt应用程序没有问题。