我目前正在尝试将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,所以我想我会输掉一些并希望得到一些感谢。
答案 0 :(得分:1)
我收到了与libssh-0.7.1,Qt 5.2.1和MinGW相同的错误消息。
经过一番研究后,它发现了libssh
需要另外两个依赖于:libeay32.dll
和zlib1.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应用程序没有问题。