本文介绍了libssh2和C ++的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我尝试在C ++类中使用libssh2时,始终出现以下错误:

When I try to use libssh2 in my C++ class, I keep getting the following errors:


undefined reference to `libssh2_session_init_ex'
undefined reference to `libssh2_session_startup'

如果我使用C做同样的事情,那么一切都会很好.

If I do the same thing using C, everything works fine.

有帮助吗?

以下是构建命令

g++ -Wall -g -I/libssh2-1.2.4/src -I/libssh2-1.2.4/include -L/libssh2-1.2.4/src/obj -L/openssl-0.9.8k/ -L/SecuritySDK/3.0.13/RC/LATEST/security/lib  -lssh2 -ldl -lnsl -lresolv -lhash -lhandlers -lcrypto -lssl -lz -lbpwp3   rhost.o rpipe.o rutils.o -o rpipe

以下是类成员函数

void rhost::InitSession()
{
    m_session = libssh2_session_init();
    if ( libssh2_session_startup(m_session, m_sock) )
    {
        fprintf (stderr, "Failure establishing SSH session\n");
        exit(-1);
    }
    return;
}

是的平台是Linux

Yes platform is linux

推荐答案

将呼叫更改为g++ -Wall -g -I/libssh2-1.2.4/src -I/libssh2-1.2.4/include -L/libssh2-1.2.4/src/obj -L/openssl-0.9.8k/ -L/SecuritySDK/3.0.13/RC/LATEST/security/lib rhost.o rpipe.o rutils.o -o rpip -lssh2 -ldl -lnsl -lresolv -lhash -lhandlers -lcrypto -lssl -lz -lbpwp3.

参数列表中库和目标文件的顺序很重要.在此处中阅读.

The order of libraries and object files in the parameter list matters. Read about it here.

这篇关于libssh2和C ++的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-01 19:46