来看看:Linux下利用aMsn详解
如果你学不好的话,你在linux中开发的机会就很少,或者说几乎没有,它的优势就消失了,然后随着时间的流逝,你就会全部忘记她;amsn这一款在linux下的Msn就未几先容了,0.95版出来后到场了摄像头,在加上其文件传输功效,你还依恋于gaim么?
经由多天的搜刮和实验,终究在FedoraCore3里用上amsn了。实在安装amsn并run起来不难(不外我基础上从不克不及运转到能运转,不克不及输出任何字符到能输出英文,不克不及输出中文到能输出中文的成绩都碰到了,还碰到程序段毛病等等,也够衰的了),特别是中文输出的成绩是有点贫苦,由于开辟amsn的言语是Tcl/tk,对中文的撑持不是太好,加上amsn-0.95必要tcl/tk8.4以上撑持,故之前jserv兄的tcl/tk8.3XIMpatch不克不及用了,不外头几天他推出了一个diff,总算让偶找到了,活活。ok,闲话未几说了。
安装amsn的需要前提:
1.gcc之类编译工具必不成少,触及响应类库,假如你在编译时堕落,烦请本人上彀搜响应的包安装.
2.tcl8.5a3-src.tar.gz
3.tk8.5a3-src.tar.gz以上两个包都能够在tcl/tk的官方网站下载失掉
4.amsn-0.95.tar.gz这里必要申明一下,amsn.sourceforge.net上有良多amsn的版本诸如bin,rpm等,乃至有专为Fedora的rpm包,不外不才不保举利用那些,在列内外拔取“other”,下载amsn-0.95.tar.gz。
5.tk-cvs-xim-fixes.diff下载地点http://jserv.sayya.org/tcl-i18n/tk-cvs-xim-fixes.diff
当猎取这些文件后,我们将之放在/home目次下
为了形成不用要的困扰,先删除体系中自带的tcl和tk
CODE:#rpm-qa|greptcl
tcl8.4*****
#rpm-etcl
#rpm-qa|greptk
tk8.4*****
#rpm-etk
假如卸载tcl发明有其他安装包依附于tcl,假如那些包不主要,就先删那些包,固然你也能够rpm-e--nodepstcl卸载。
CODE:#tarxvzftcl8.5a3-src.tar.gz
#tarxvzftk8.5a3-src.tar.gz
在安装它们之前必要先辈行diff打patch,命令很复杂:patch-p0<tk-cvs-xim-fixes.diff
不外为人人剖析一下jserv年夜年夜的这个patch文件内容,如许了解起来人人更简单些,中文输出都是我说的话(针对Linux菜鸟,汗!实在偶也是菜鸟)
CODE:Index:generic/tkEvent.c
===================================================================
RCSfile:/home/tk8.5a3/generic/tkEvent.c,v//遭修正的文件tkEvent.c
retrievingrevision1.31
diff-u-p-r1.31tkEvent.c
---generic/tkEvent.c4Nov200511:52:50-00001.31
+++generic/tkEvent.c4Jan200606:31:19-0000
@@-449,8+449,10@@InvokeInputMethods(//也许在449行摆布的地位,在InvokeInputMethods办法里
XSetICFocus(winPtr->inputContext);
}
}
-if(XFilterEvent(eventPtr,None)){//删
-return1;//删
+if(eventPtr->type==KeyPress||eventPtr->type==KeyRelease){//增添的内容
+if(XFilterEvent(eventPtr,None)){//增添
+return1;//增添
+}//增添
}
}
return0;
Index:unix/tkUnixEvent.c
===================================================================
RCSfile:/home/tk8.5a3/unix/tkUnixEvent.c,v
retrievingrevision1.19
diff-u-p-r1.19tkUnixEvent.c
---unix/tkUnixEvent.c7Dec200517:32:52-00001.19
+++unix/tkUnixEvent.c4Jan200606:31:20-0000
@@-334,19+334,22@@staticvoid
TransferXEventsToTcl(
Display*display)
{
-intnumFound;
XEventevent;
-numFound=QLength(display);
-
/*
-*TransfereventsfromtheXeventqueuetotheTkeventqueue.
+*TransfereventsfromtheXeventqueuetotheTkeventqueue
+*afterXIMeventfiltering.KeyPressandKeyReleaseevents
+*arefilteredinTk_HandleEventinsteadofhere,sothatTks
+*focusmanagementcodecanredirectthem.
*/
-
-while(numFound>0){
+while(QLength(display)>0){
XNextEvent(display,&event);
+if(event.type!=KeyPress&&event.type!=KeyRelease){
+if(XFilterEvent(&event,None)){
+continue;
+}
+}
Tk_QueueWindowEvent(&event,TCL_QUEUE_TAIL);
-numFound--;
}
}
上面安装这些软件:
CODE:#cdtcl8.5a3
#cdunix
#./configure--prefix=/usr
--enable-gcc
--disable-threads
--disable-shared
#makeclean
#make
#makeinstall
CODE:#cdtk8.5a3
#cdunix
#./configure--prefix=/usr
--enable-gcc
--disable-threads
--disable-shared
--enable-xft
--disable-symbols
#makeclean
#make
#makeinstall
十分关头的两个link!!!
CODE:#ln-s/usr/bin/wish8.5/usr/bin/wish
#ln-s/usr/bin/tclsh8.5/usr/bin/tclsh
最初解压amsn-0.95.tar.gz
CODE:#tarxvzfamsn-0.95.tar.gz
#cdamsn-0.95
#./configure--with-tcl=/usr/lib&&makeclean&&make
最初运转amsn,半途而废!
CODE:#./amsn
</p>
对于linux命令,一定要学会用man和info去查他们的解释; 说实话小时候没想过搞IT,也计算机了解也只是一些皮毛,至于什么UNIX,Linux,听过没见过,就更别说用过了。? 未来的学习之路将是以指数增加的方式增长的。从网管员来说,命令行实际上就是规则,它总是有效的,同时也是灵活的。 如果上面的措施没有解决问题,此时你就需要Linux社区的帮助了。 Linux的使用者一般都是专业人士,他们有着很好的电脑背景且愿意协助他人。 把这个问题放在其他Linux社区请求帮助也是一种选择。如果Linux得不到答案,请不要以为我们觉得无法帮助你。有时只是看到你问题的人不知道答案罢了。这时换一个社区是不错的选择。 通过一条缓慢的调制解调器线路,它也能操纵几千公里以外的远程系统。 当然你不需搭建所有服务,可以慢慢来。自己多动手,不要非等着别人帮你解决问题。 在学习的过程中,我们用的是VM虚拟机,开始时真的不真的该怎么去做,特别是我的是命令窗口界面,别人的是图形界面,我都不知道怎么调过来。 Linux操作系统这个名词记得在很早以前就听过,但当时并不知道具体是什么样的操作系统,只知道是一个与嵌入式密切相关的操作系统。
页:
[1]