我正在给自己写一个小型的jabber客户。我已经使用了Libpurple.com中的代码,并且在Linux(Mint)上一切正常。使用库链接时,程序可以正确编译并接收消息。

但是,当我在Windows 7上使用相同的代码时,链接所有必需的库并安装Cygwin并设置PATH,程序编译时没有错误,但是NetBeans(我在Windows和Linux中使用的IDE)说“运行失败”。

当我从Windows命令行运行程序时,它说:

libpurple initialized. Running version 2.10.7.
** <myclient.exe:6500>: CRITICAL **: purple_presence_is_online: assertion 'presence != NULL' failed

然后冻结。我已经尝试过回溯到libpurple 2.10.3(我在Linux中拥有的版本),但是仍然相同。关闭防火墙也无济于事。

最佳答案

几件事要注意:

  • 部署程序时,每个OS都有其自身的问题。因此,请忽略您的客户端正在Linux中工作的事实。首先,您的程序/libpurple在Windows中不起作用。
  • 尝试查看是否有一个客户端(pidgin等)使用相同的代码路径(断言失败的函数)并成功。这是为了进行基本的健全性检查,以确保libpurple代码实际上可以在该环境中使用(Cygwin)
  • 如果您的客户端和服务器之间有任何流量,请尝试获取Wireshark流量转储,然后在工作环境(Linux)和故障环境(Cygwin)之间进行比较。
  • 关于c++ - Libpurple无法连接-Purple_presence_is_online失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16386014/

    10-12 00:22