2016-12-12 12 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에 의존하는 다른 두 개의 동적 라이브러리를 필요로한다는 것을 알게되었습니다. 그것들은 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는 응용 프로그램이 문제없이 작동합니다 내 .pro 파일에서

나는 다음과 같은 라인 (나는 프로그램 파일 (86) 디렉토리에 자신의 설치 프로그램을 사용하여 libssh 설치) 추가했습니다.