문제

Visual Studio 2008에서 Libgadu (Instant Messaging Protocol의 라이브러리)를 사용하고 싶습니다. Libgadu를 다운로드했습니다. http://toxygen.net/libgadu/files/libgadu-1.8.2.tar.gz 그리고 Cygwin에서 나는 그것을 컴파일했다 - ./configure, make, sulestal. File Libgadu.h는 파일 디렉토리 포함 vs에 표시된 다른 폴더에 복사 한 폴더에 포함 된 폴더에 나타납니다.

문서에서 코드를 컴파일하고 싶었습니다

#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <libgadu.h>

using namespace std;

int main(void)
{
    char password[]= "haslo";
    struct gg_session *sesja;
    struct gg_login_params parametry;
    struct gg_event *zdarzenie;

    memset(&parametry, 0, sizeof(parametry));
    parametry.uin = 12345;
    parametry.password = password;
    parametry.async = 1;
    parametry.status = GG_STATUS_INVISIBLE;


    sesja = gg_login(&parametry);
    if (!sesja) {
        cout << "Can't connect" << endl;
       exit(1);
    }

    system("PAUSE");
}

컴파일하는 동안 두 가지 오류가 발생합니다.

Error   1   error LNK2019: unresolved external symbol _gg_login referenced in function _main    1.obj
Error   2   fatal error LNK1120: 1 unresolved externals 

나는 그것으로 무엇을해야합니까?

도움이 되었습니까?

해결책

컴파일 된 DLL 및 LIB 파일을 찾거나 정적 라이브러리로 컴파일 된 경우 LIB 파일 만 찾아야합니다. 파일의 이름은 libgadu.dll 및 libgadu.lib로 명명 될 것입니다.

일단 있으면 프로젝트 속성을 선택하고 링커 설정에서 추가 종속성을 찾아 Lib 파일과 연결하도록 Visual Studio에 지시 할 수 있습니다.

그냥 추가하십시오 libgadu 모든 구성에 대한 추가 종속성 목록으로.

다른 팁

Frank가 이미 말했듯이, 이것은 일반적으로 라이브러리 (.lib 또는 .dll)가 연결되지 않았다는 것을 의미합니다. 그러나 성공적인 컴파일이 .dll 또는 .lib 파일을 생성하지 않으면 Cygwin과 VS 간의 빌드 시스템이 동기화되지 않았기 때문입니다.

구체적으로 VS 프로젝트 파일에서 파일이 참조되지 않습니다. 나는 그것이 느낌이 있습니다 libgagdu.c 그 자체로 GG_LOGIN 기능이 정의되어 있기 때문에.

해당 파일을 프로젝트에 추가하고 재건하십시오. 작동하는 경우 Libgadu 개발자에게 문의하여 끝에 고칠 수 있습니다.

./configure 중에 Cygwin에서 Make에서 .dll 및 .lib 파일을 만들지 않기 때문에 이상합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top