我目前正在尝试将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,所以我想我有点不知所措,希望能输入一些信息,谢谢。
发布于 2017-01-25 18:13:15
我在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应用程序可以正常工作了。
https://stackoverflow.com/questions/41111545
复制相似问题