Ошибка поиска символа: неопределенный символ

0

Я пытаюсь использовать libssh с C++ wrapper libsshpp.hpp (он завершен из libssh.h, библиотек libssh, написанных на C). Сначала я пытаюсь выдать код из libsshpp.cpp в каталоге примеров g++ -o sshpp libsshpp.cpp -lssh

#include <iostream>
#include <string>
#include <libssh/libsshpp.hpp>

int main(int argc, const char **argv){
  ssh::Session session;
  try {
    if(argc>1)
      session.setOption(SSH_OPTIONS_HOST,argv[1]);
    else
      session.setOption(SSH_OPTIONS_HOST,"localhost");
    session.connect();
    session.userauthPublickeyAuto();
    session.disconnect();
  } catch (ssh::SshException e){
    std::cout << "Error during connection : ";
    std::cout << e.getError() << std::endl;
  }
  return 0;
}

build is success, но при excute sshpp он показывает ошибку: ./sshpp: symbol lookup error:./sshpp: undefined symbol: ssh_userauth_publickey_auto.

Я ищу в libsshpp.cpp:

  int userauthPublickeyAuto(void){
    int ret=ssh_userauth_publickey_auto(c_session, NULL, NULL);
    ssh_throw(ret);
    return ret;
  }

и в libssh.h:

LIBSSH_API int ssh_userauth_publickey_auto(ssh_session session,
                                           const char *username,
                                           const char *passphrase);

Надеюсь, кто-нибудь, кто столкнулся с libssh, может помочь

  • 0
    Вы называете это как метод класса ssh :: Session. Это как это определяется?
  • 0
    да, вы можете найти здесь api.libssh.org/master/libsshpp_8hpp_source.html
Показать ещё 2 комментария
Теги:
libssh

1 ответ

0

"Ошибка поиска символа" означает, что исполняемый файл ищет объектный код для этого метода и не может его найти.

Попробуйте следующее: g++ -o sshpp libsshpp.cpp -L <"путь к libssh"> -L ssh

Ещё вопросы

Сообщество Overcoder
Наверх
Меню