2016-12-12 15 views
0

私は現在、私が取り組んでいるQtプロジェクトにlibsshをインポートしようとしています。プロジェクトが構築されるにつれてライブラリが正しくリンクされているように見えますが、プロジェクトを実行すると実際に起動する前にクラッシュするだけです。これはデバッグを困難にします。私は行をコメントアウトした場合:それが必要としてQtにlibsshをインポートする

my_ssh_session = ssh_new();

は、その後すべてが実行され、何のクラッシュが発生しません。私の.PROファイルは、問題がDLLの可能性のようなオンライン見た後、それが見えますが、私は、私は私が負けに思うよそうに必要なすべてのDLLを持っているように、DLLの依存アプリケーションを実行した後、それが見え、

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 

のように見えますいくつかの入力を感謝します。

+0

どのようなタイプのクラッシュとスタックトレースとは何ですか? – MrEricSir

+0

@MrEricSir起動時にプログラムが終了するかどうかはわかりません。ウィンドウをデバッグすると、「起動プログラムがコード0xc000007bで終了しました」というテキストが表示されます。 – Iseis

+0

更新私はここでいくつかの回答を見つけました:[Qt creator and libssh](http://forum.qtfr.org/discussion/17738/qt-creator-et-libssh-probleme-de-fonctionnement)。 – Iseis

答えて

1

libssh-0.7.1、Qt 5.2.1、MinGWで同じエラーメッセージが表示されました。

libssh には、libeay32.dllzlib1.dllに依存する別の2つのダイナミックライブラリが必要であることがわかりました。 libsshのディストリビューションアーカイブには含まれていないので、自分でダウンロードしてlibssh.dll(または$PATHのどこか)の隣にコピーする必要があります。

# 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アプリケーションは問題なく動作します。私は次の行が(私はプログラムファイル(x86の)ディレクトリへのインストーラを使用してlibsshをインストール)を添加してい私の.proファイルで

関連する問題