C++에서 작업중인 프로젝트에 libssh2 라이브러리를 사용하고 있습니다. 내 기본 응용 프로그램에서 제대로 구현하기 전에 테스트 할 수있는 매우 기본적인 프로젝트를 만들었습니다.NuGet 패키지를 사용하는 C++ 프로젝트에서 libssh2를 참조하면 링커 오류가 발생합니다.
나는 https://www.libssh2.org/examples/direct_tcpip.html에서 예를 촬영하고 난 비주얼 스튜디오에서 NuGet 패키지 관리자를 사용하여 libssh2 라이브러리를 설치 한 2015 년
나는 다음과 같은 코드가 내가 얻을 컴파일
#include <libssh2.h>
#include <windows.h>
#include <winsock2.h>
#include <ws2tcpip.h>
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
const char *username = "user";
const char *password = "password";
const char *server_ip = "127.0.0.1";
const char *local_listenIP = "127.0.0.1";
unsigned int local_listenport = 2222;
const char *remote_desthost = "127.0.0.1";
unsigned int remote_destport = 22;
enum {
AUTH_NONE = 0,
AUTH_PASSWORD,
AUTH_PUBLICKEY
};
int main()
{
int rc, i, auth = AUTH_NONE;
struct sockaddr_in sin;
socklen_t sinlen;
const char *fingerprint;
char *userauthlist;
LIBSSH2_SESSION *session;
LIBSSH2_CHANNEL *channel = NULL;
const char *shost;
unsigned int sport;
fd_set fds;
struct timeval tv;
ssize_t len, wr;
char buf[16384];
char sockopt;
SOCKET sock = INVALID_SOCKET;
SOCKET listenSocket = INVALID_SOCKET, forward_socket = INVALID_SOCKET;
WSADATA wsadata;
int err;
err = WSAStartup(MAKEWORD(2, 0), &wsadata);
if (err != 0)
{
cout << "WSAStartup failed with error " << err << " Msg: " << strerror(err) << endl;
return EXIT_FAILURE;
}
rc = libssh2_init(0);
if (rc != 0)
{
cout << "Failed to init libssh2. Error " << rc << " Msg: " << strerror(err) << endl;
return EXIT_FAILURE;
}
에게 있습니다 다음 오류 :
Unresolved external symbol libssh2_init referenced in function main
Unresolved external symbol _imp_WSAStartup referenced in function main
도움을 주셔서 감사합니다.
아마도 libssh2 또는 winsock에 연결하지 않았을 것입니다. – harmic