在Windows下编译libgadu
-
19-08-2019 - |
题
我想要的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(¶metry, 0, sizeof(parametry));
parametry.uin = 12345;
parametry.password = password;
parametry.async = 1;
parametry.status = GG_STATUS_INVISIBLE;
sesja = gg_login(¶metry);
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文件。
不隶属于 StackOverflow