快速业务通道

linux下安装loudmouth库中碰到的问题

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-05-02
最近在参与一个xmpp协议相关的项目,要找一个c下面的xmpp的库帮助开发.在xmpp.org上c库少的可怜.iksemel太过底层,就是一个xml的解析器,只不过是支持jabber而已,网络连接、登录都是要自己编写的;libstrophe找不到手册,唯一找到的好像是给javascript的;也就看到了loudmouth这个家伙.现在的版本是1.4.3. 原来没有做过这种层次的工作,这是第一次,过程中必然会碰到一些问题.我就写写我的学习过程以及碰到问题,当然还有解决办法了! 1.学习xmpp
是要学习xmpp协议,主要是RFC3920[XMPP-CORE]和RFC3921[XMPP-IM]这两个.老板推荐的xmpp的论文觉得的确很好: <Extensible Messaging and Presence Protocol>
by Mikko Laukkanen 基本上看了这篇论文就对xmpp有一个比较好的认识了. 我们办公室的服务器就有xmpp的server,可以直接找一个client登录看看,没有的话gtalk就是基于xmpp的拉.(应该是吧) 2.loudmouth库的编译和安装
安装过程主要就是linux三部曲 ./configure
make
make install 但是我在./configure的时候出问题了,报错说glib版本过低.我是在vmware里装了一个ubuntu9.04,后安装glib2.13到/usr目录,即可编译通过.这里安装过程我写的比较简单,掠过了几个地方,比如,如果以前有过glib,但是版本比较低的话,我建议如果可以,重新安装一个比较新版本的linux会比较好,我曾经在rh9上碰到了glib版本太低的问题,当时花了一些时间想对glib升级,还是重装了一个ubuntu才解决.记得最好是装在/usr下,也就是在glib的./configure时加入参数--prefix=/usr. 3.loudmouth的调用
这样就ok了,可以直接到examples目录下跑跑测试程序.但是这里发现了一个问题,就是库自带的测试程序都非常奇怪,一个个的bash程序,然后里边再ooxx,总之examples下的makefile非常复杂,是自动生成的. 这里我碰到了一个问题,就是我们自己的程序里如何调用loudmouth的函数呢? 写一个test.c包含一下试试: // test.c #include<loudmouth/loudmouth.h>
int main(void){
return 0;
} 这个直接gcc是不行的,要加一些目录包含的参数(这里注意,需要loudmouth自己的目录,还需要glib的).我写了一个简单的Makefile:project = test
$(project) : $(project).c
gcc -o $@ -I/usr/local/include/loudmouth-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -L/usr/local/lib -lloudmouth-1 contentlt;
放在test.c目录下,make就可以了. 这还不行,运行的时候还会发现下面的错误: error while loading shared libraries: libloudmouth-1.so.0: cannot open shared object file: No such file or directory 这是ldconfig的问题,具体的请google ldconfig.通过以下命令解决之: echo "/usr/local/lib" >> /etc/ld.so.conf ldconfig 这样就可以运行了.4.其他
关于loudmouth的具体使用,在它的包里边有详细的html格式的手册,觉得好像还是挺好用的. 这里推荐大家一个很好的code编辑和阅读的软件,source insight,除了编辑方式上我觉得比vim差一些,其他的觉得都很好用,个人觉得比我使用vim ctags tlist方便一些.(当然,我根本没怎么用vim编过大程序,更别提我用的方法上可能有很多欠缺……总之大家可以试试这个insight就是了.它本身就可以查看函数的调用情况等等地方,还是很方便的) 之后可能需要将这个东西放到arm上跑……现在还没概念,不知道glib会不会又给我找事……有不祥的预感啊,不过以后再说吧. 2009.7.7 by Peter.Xu

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号