|
声明:
本文属作者guanhuaming原创,如要转?K,勿必包含本声明
1. 到http://lumaqq.linuxsir.cn/main/ 中下载最新的在FreeBSD平台上用的Lumaqq2004 和相关补丁
2. 解压
tar zxvf lumaqq_2004-freebsd_gtk2_x86_no_jre.tar.gz
3. 打补丁
把补丁包解压出来的所有jar文件拷贝到LumaQQ的lib目录下,覆盖原来的文件。这样升级就完成了
4. 安装jdk1.4.2p7
到网上下载编译好的jdk-1.4.2p7.tbz,用pkg_add -v jdk-1.4.2p7.tbz 安装就是。
jdk-1.4.2p7.tbz包的下载位置可以用google搜索一下。
安装时,可能会提示少什么什么包,这时,同样可以用google搜索一下少掉的包名,然后下载下来用pkg_add -v 安装就是。
好了,接下来进入Lumaqq目录,运行./lumaqq看看?郁闷的是出现了如下问题:
- ghm# setenv $JAVA_HOME /usr/local/jdk1.4.2
- ghm# lumaqq
- Exception in thread "main" java.lang.UnsatisfiedLinkError: /usr/local/LumaQQ/swt/libswt-pi-gtk-3062.so: Shared object "libgdk-x11-2.0.so.400" not found, required by "libswt-pi-gtk-3062.so"
- at java.lang.ClassLoader$NativeLibrary.load(Native Method)
- at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1560)
- at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1485)
- at java.lang.Runtime.loadLibrary0(Runtime.java:788)
- at java.lang.System.loadLibrary(System.java:834)
- at org.eclipse.swt.internal.Library.loadLibrary(Library.java:100)
- at org.eclipse.swt.internal.gtk.OS.<clinit>(OS.java:19)
- at org.eclipse.swt.internal.Converter.wcsToMbcs(Converter.java:63)
- at org.eclipse.swt.internal.Converter.wcsToMbcs(Converter.java:54)
- at org.eclipse.swt.widgets.Display.<clinit>(Display.java:118)
- at edu.tsinghua.lumaqq.shells.MainShell.<init>(Unknown Source)
- at edu.tsinghua.lumaqq.LumaQQ.main(Unknown Source)
复制代码
提示系统中少了libswt-pi-gtk-3062.so所要的库文件libgdk-x11-2.0.so.400。
实际上系统目录/usr/X11R6/lib中存在着libgdk-x11-2.0.so.600,只不过由于Lumaqq中的SWT版本太旧,用得却是libgdk-x11-2.0.so.400。那我们何不把Lumaqq中的SWT替换成现在的新版本呢?这样不就行了?方法请看步骤5:
5. 安装eclipse-3.0.1_4.tbz
pkg_add -v eclipse-3.0.1_4.tbz
eclipse-3.0.1_4.tbz包可用google搜索一下,网上现成的一大堆,下载下来安装就是。
6. 用eclipse-3.0.1_4中的swt替换Lumaqq中的swt旧版本。
安装完eclipse-3.0.1_4后,我们查看一下eclipse-3.0.1_4中swt的版本号:
cd /usr/local/eclipse/plugins/org.eclipse.swt.gtk_3.0.1/os/freebsd/x86/
ls
显示如下:
--------------------------------------------------------
libswt-atk-gtk-3063.so libswt-gtk-3063.so
libswt-awt-gtk-3063.so libswt-mozilla-gtk-3063.so
libswt-gnome-gtk-3063.so libswt-pi-gtk-3063.so
---------------------------------------------------------
而到目前为止,Lumaqq 2004中的swt版本却是:
cd LumaQQ/swt
ls
----------------------------
libswt-atk-gtk-3062.so libswt-gtk-3062.so
libswt-awt-gtk-3062.so libswt-mozilla-gtk-3062.so
libswt-gnome-gtk-3062.so libswt-pi-gtk-3062.so
--------------------------------------------------------
大家发现了吧?
接着把旧版本删除,用新版本替换就是。
rm -rdf LumaQQ/swt/*
cd /usr/local/eclipse/plugins/org.eclipse.swt.gtk_3.0.1/os/freebsd/x86/
cp * /XXXXX/LumaQQ/swt/ #注意更改相应的目标路径啊...
7. 接下来再进入Lumaqq目录,运行./lumaqq看看?很高兴了吧??呵呵,不巧的是又出现了问题了,显示如下:
---------------------------------------------------------
- ghm# setenv $JAVA_HOME /usr/local/jdk1.4.2
- ghm# ./lumaqq
- ghm# Exception in thread "main" java.lang.UnsatisfiedLinkError: no swt-pi-gtk-3062 in java.library.path
- at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1491)
- at java.lang.Runtime.loadLibrary0(Runtime.java:788)
- at java.lang.System.loadLibrary(System.java:834)
- at org.eclipse.swt.internal.Library.loadLibrary(Library.java:100)
- at org.eclipse.swt.internal.gtk.OS.<clinit>(OS.java:19)
- at org.eclipse.swt.internal.Converter.wcsToMbcs(Converter.java:63)
- at org.eclipse.swt.internal.Converter.wcsToMbcs(Converter.java:54)
- at org.eclipse.swt.widgets.Display.<clinit>(Display.java:118)
- at edu.tsinghua.lumaqq.ui.MainShell.<init>(MainShell.java:312)
- at edu.tsinghua.lumaqq.LumaQQ.main(LumaQQ.java:107)
复制代码
------------------------------------------------------------------
提示Lumaqq的main线程找不到/usr/local/LumaQQ/swt/libswt-pi-gtk-3062.so文件,这是因为我们刚才进行了swt替换,而新的swt的版本号是3063,大家知道怎么办了吧?对了,按步骤8改下名字就是了:
8. 更改swt文件的文件名(shit,Lumaqq中什么main为什么要硬编码指定死文件的版本号呢?)
-----------------------------------------------------------------
- mv libswt-atk-gtk-3063.so libswt-atk-gtk-3062.so
- mv libswt-gtk-3063.so libswt-gtk-3062.so
- mv libswt-awt-gtk-3063.so libswt-awt-gtk-3062.so
- mv libswt-mozilla-gtk-3063.so libswt-mozilla-gtk-3062.so
- mv libswt-gnome-gtk-3063.so libswt-gnome-gtk-3062.so
- mv libswt-pi-gtk-3063.so libswt-pi-gtk-3062.so
复制代码
-----------------------------------------------------------------
大功告成,这下最新的Lumaqq能很好地在我们的机子上运行了. 多省事啊,什么乱七八的linux程序兼容性支持等都不用安装了。 |
|