• 7401阅读
  • 6回复

[提问]qt调用libssh2编译报错 [复制链接]

上一主题 下一主题
离线wind_133
 

只看楼主 正序阅读 楼主  发表于: 2015-03-02
更正一下,之前的pro文件的路径有问题
这是linux下的,报错只截取了开头的部分
问题:
/usr/local/lib64/libssh2.a(channel.o):-1: In function `channel_x11_req':
/home/phoenix/libssh2-1.4.3/src/channel.c:1138: error: undefined reference to `RAND_bytes'
window.open('http://www.qtcn.org/bbs/attachment/Mon_1503/17_140319_c94a40cc8731732.jpg?24');" style="max-width:700px;max-height:700px;" onload="if(is_ie6&&this.offsetWidth>700)this.width=700;" >

为什么会提示找不到文件,可是路径明明没错啊

phoenix@phoenix  :~/libssh2-1.4.3> ll /usr/local/lib64/libssh2.a
-rw-r--r-- 1 root root 1502520 3月   2 05:15 /usr/local/lib64/libssh2.a
phoenix@phoenix  :~/libssh2-1.4.3>



编译输出:

06:39:24: 为项目ssh_test执行步骤 ...
06:39:24: 配置没有改变, 跳过 qmake 步骤。
06:39:24: 正在启动 "/usr/bin/make"
g++ -Wl,-rpath,/home/phoenix/Qt/5.4/gcc_64 -Wl,-rpath,/home/phoenix/Qt/5.4/gcc_64/lib -o ssh_test main.o mainwindow.o moc_mainwindow.o   /usr/local/lib64/libssh2.a -L/home/phoenix/Qt/5.4/gcc_64/lib -lQt5Widgets -lQt5Gui -lQt5Network -lQt5Core -lGL -lpthread
/usr/local/lib64/libssh2.a(channel.o): In function `channel_x11_req':
/home/phoenix/libssh2-1.4.3/src/channel.c:1138: undefined reference to `RAND_bytes'
/usr/local/lib64/libssh2.a(hostkey.o): In function `hostkey_method_ssh_dss_dtor':
/home/phoenix/libssh2-1.4.3/src/hostkey.c:383: undefined reference to `DSA_free'
/usr/local/lib64/libssh2.a(hostkey.o): In function `hostkey_method_ssh_dss_signv':
/home/phoenix/libssh2-1.4.3/src/hostkey.c:358: undefined reference to `EVP_get_digestbyname'
/home/phoenix/libssh2-1.4.3/src/hostkey.c:358: undefined reference to `EVP_DigestInit'
/home/phoenix/libssh2-1.4.3/src/hostkey.c:360: undefined reference to `EVP_DigestUpdate'



.pro文件如下

#-------------------------------------------------
#
# Project created by QtCreator 2015-03-02T05:18:11
#
#-------------------------------------------------

QT       += core gui
QT       += network
LIBS += /usr/local/lib64/libssh2.a
INCLUDEPATH +=/home/phoenix/libssh2-1.4.3/include/
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = ssh_test
TEMPLATE = app


SOURCES += main.cpp\
        mainwindow.cpp

HEADERS  += mainwindow.h \
    ../../libssh2-1.4.3/include/libssh2_config.h \
    ../../libssh2-1.4.3/include/libssh2_publickey.h \
    ../../libssh2-1.4.3/include/libssh2_sftp.h \
    ../../libssh2-1.4.3/include/libssh2.h

FORMS    += mainwindow.ui
本帖提到的人: @phoenix
离线roywillow

只看该作者 6楼 发表于: 2015-03-14
我一般添加库的时候都是用LIBS += -LXXX/XX/XX -lXXX,让他在指定的目录自动去搜索指定的库
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线wind_133

只看该作者 5楼 发表于: 2015-03-14
自己顶顶
离线wind_133

只看该作者 4楼 发表于: 2015-03-09
重新把问题描述了一下,谁给看看是怎么回事儿啊谢谢。
离线wind_133

只看该作者 3楼 发表于: 2015-03-08
回2楼,的确是这样的,可是为什么我已经定义了LIBS += /usr/local/lib64/libssh2.a,它却要到/home/phoenix/qt_project/ssh/libssh2/lib/这下面去找libssh2.a呢?
离线roywillow

只看该作者 2楼 发表于: 2015-03-02
你说那个rtc开关要关掉,你如果用的是vc编译器就按照vc的来做就是了,关qt啥事,估计是改改define或者cflag之类的吧
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线stlcours

只看该作者 1楼 发表于: 2015-03-02
/home/phoenix/qt_project/ssh/libssh2/lib/libssh2.a

LIBS += /usr/local/lib64/libssh2.a

不是一个路径啊!
快速回复
限100 字节
 
上一个 下一个