我想要的Visual Studio 2008下使用libgadu(即时消息接发协议的库)。 我已经下载libgadu http://toxygen.net/libgadu/files/ libgadu-1.8.2.tar.gz ,并在cygwin下我编译它 - 的./configure,make,make install的。 文件libgadu.h其中appeard在包括我复制到标在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。

一旦你拥有了这些,你可以指示Visual Studio中选择项目属性,并根据连接器设置定位附加依赖的LIB文件链接。

只需添加libgadu到额外的依存列表的所有配置。

其他提示

当弗兰克已经说过,这通常意味着一个库(.LIB或.dll)是没有得到对链接。然而,如果已完成的编译不创建的.dll或.lib文件,那么最可能的情况是,Cygwin和VS之间构建系统是不同步的。

具体地讲,一个文件是没有得到在VS项目文件引用。我有一种感觉是 libgagdu.c 本身,因为在定义的gg_login功能它

只需将该文件添加到项目和重建。如果一切正常,接触libgadu开发人员,这样他们可以将其固定到其端部。

这很奇怪,因为期间的./configure,使Cygwin的,它不会产生任何.dll和.lib文件。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top