Code::Blocks在Debian下的绿色安装
不想看废话的直接下载用就是了。我已经打包设置好了。^^
简短描述:
媲美于VC的C++ IDE集成开发环境,具有较完善的自动补全功能。基于官方的Debian 8.02最新版本。已包含libwx2.8。(Debian etch源上的是2.6)。无须root权限安装,解压即可使用。
安装步骤:
解压到自己安排的位置。cd到相关目录,运行sh脚本setup.sh就可以了。将生成sh脚本codeblocks,可直接通过该脚本启动。(实际上就是设置了LD_LIBRARY_PATH和CODEBLOCKS_DATA_DIR)
下载地址:
http://www.fs2you.com/zh-cn/files/7de0ba0c-428f-11dd-812f-00142218fc6e/
下面介绍自己进行绿色安装的过程。
首先到Code::Blocks的项目页下载最新的版本8.02。
http://www.codeblocks.org/
当然,我用的是Debian,下载的就是这个版本:codeblocks-8.02debian-i386.tar.gz。
解压后是一堆deb包,小心的把这些包解压到某个位置下的usr目录下。(注意,不是默认的/usr目录)。然后这个文件夹的名字不重要,是可以更换的。比如,我就换成了codeblocks。这时候,这个目录下应该有这些文件夹:bin, include, lib, share。其中,可执行文件在bin目录下。cd到bin目录下,检查codeblocks的依赖库及其路径:
ldd codeblocks
然后可以看到一大堆没有找到的so:
linux
-
gate.so.
1
=>
(
0xffffe000
)
libgtk - x11 - 2.0 .so. 0 => / usr / lib / libgtk - x11 - 2.0 .so. 0 ( 0xb7ca1000 )
libgdk - x11 - 2.0 .so. 0 => / usr / lib / libgdk - x11 - 2.0 .so. 0 ( 0xb7c20000 )
libatk - 1.0 .so. 0 => / usr / lib / libatk - 1.0 .so. 0 ( 0xb7c06000 )
libgdk_pixbuf - 2.0 .so. 0 => / usr / lib / libgdk_pixbuf - 2.0 .so. 0 ( 0xb7bf0000 )
libpangocairo - 1.0 .so. 0 => / usr / lib / libpangocairo - 1.0 .so. 0 ( 0xb7be8000 )
libXext.so. 6 => / usr / lib / libXext.so. 6 ( 0xb7bd9000 )
libXinerama.so. 1 => / usr / lib / libXinerama.so. 1 ( 0xb7bd6000 )
libXi.so. 6 => / usr / lib / libXi.so. 6 ( 0xb7bce000 )
libXrandr.so. 2 => / usr / lib / libXrandr.so. 2 ( 0xb7bcb000 )
libXcursor.so. 1 => / usr / lib / libXcursor.so. 1 ( 0xb7bc2000 )
libXfixes.so. 3 => / usr / lib / libXfixes.so. 3 ( 0xb7bbd000 )
libpango - 1.0 .so. 0 => / usr / lib / libpango - 1.0 .so. 0 ( 0xb7b82000 )
libcairo.so. 2 => / usr / lib / libcairo.so. 2 ( 0xb7b20000 )
libfreetype.so. 6 => / usr / lib / libfreetype.so. 6 ( 0xb7ab6000 )
libz.so. 1 => / usr / lib / libz.so. 1 ( 0xb7aa2000 )
libfontconfig.so. 1 => / usr / lib / libfontconfig.so. 1 ( 0xb7a77000 )
libpng12.so. 0 => / usr / lib / libpng12.so. 0 ( 0xb7a54000 )
libXrender.so. 1 => / usr / lib / libXrender.so. 1 ( 0xb7a4b000 )
libX11.so. 6 => / usr / lib / libX11.so. 6 ( 0xb795f000 )
libgobject - 2.0 .so. 0 => / usr / lib / libgobject - 2.0 .so. 0 ( 0xb7925000 )
libgmodule - 2.0 .so. 0 => / usr / lib / libgmodule - 2.0 .so. 0 ( 0xb7922000 )
libglib - 2.0 .so. 0 => / usr / lib / libglib - 2.0 .so. 0 ( 0xb7890000 )
librt.so. 1 => / lib / tls / i686 / cmov / librt.so. 1 ( 0xb7887000 )
libcodeblocks.so. 0 => not found
libwx_gtk2u_richtext - 2.8 .so. 0 => not found
libwx_gtk2u_aui - 2.8 .so. 0 => not found
libwx_gtk2u_xrc - 2.8 .so. 0 => not found
libwx_gtk2u_qa - 2.8 .so. 0 => not found
libwx_gtk2u_html - 2.8 .so. 0 => not found
libwx_gtk2u_adv - 2.8 .so. 0 => not found
libwx_gtk2u_core - 2.8 .so. 0 => not found
libwx_baseu_xml - 2.8 .so. 0 => not found
libwx_baseu_net - 2.8 .so. 0 => not found
libwx_baseu - 2.8 .so. 0 => not found
libpthread.so. 0 => / lib / tls / i686 / cmov / libpthread.so. 0 ( 0xb7872000 )
libdl.so. 2 => / lib / tls / i686 / cmov / libdl.so. 2 ( 0xb786e000 )
libstdc ++ .so. 6 => / usr / lib / libstdc ++ .so. 6 ( 0xb7789000 )
libm.so. 6 => / lib / tls / i686 / cmov / libm.so. 6 ( 0xb7764000 )
libgcc_s.so. 1 => / lib / libgcc_s.so. 1 ( 0xb7759000 )
libc.so. 6 => / lib / tls / i686 / cmov / libc.so. 6 ( 0xb7627000 )
libpangoft2 - 1.0 .so. 0 => / usr / lib / libpangoft2 - 1.0 .so. 0 ( 0xb75fc000 )
libXau.so. 6 => / usr / lib / libXau.so. 6 ( 0xb75f9000 )
libexpat.so. 1 => / usr / lib / libexpat.so. 1 ( 0xb75d9000 )
libXdmcp.so. 6 => / usr / lib / libXdmcp.so. 6 ( 0xb75d3000 )
/ lib / ld - linux.so. 2 ( 0xb7f9c000 )
其中libcodeblocks.so.0是Code::Blocks自带的,已经在lib目录下了,应为我们没有指定LD_LABRARY_PATH路径而找不到。
libgtk - x11 - 2.0 .so. 0 => / usr / lib / libgtk - x11 - 2.0 .so. 0 ( 0xb7ca1000 )
libgdk - x11 - 2.0 .so. 0 => / usr / lib / libgdk - x11 - 2.0 .so. 0 ( 0xb7c20000 )
libatk - 1.0 .so. 0 => / usr / lib / libatk - 1.0 .so. 0 ( 0xb7c06000 )
libgdk_pixbuf - 2.0 .so. 0 => / usr / lib / libgdk_pixbuf - 2.0 .so. 0 ( 0xb7bf0000 )
libpangocairo - 1.0 .so. 0 => / usr / lib / libpangocairo - 1.0 .so. 0 ( 0xb7be8000 )
libXext.so. 6 => / usr / lib / libXext.so. 6 ( 0xb7bd9000 )
libXinerama.so. 1 => / usr / lib / libXinerama.so. 1 ( 0xb7bd6000 )
libXi.so. 6 => / usr / lib / libXi.so. 6 ( 0xb7bce000 )
libXrandr.so. 2 => / usr / lib / libXrandr.so. 2 ( 0xb7bcb000 )
libXcursor.so. 1 => / usr / lib / libXcursor.so. 1 ( 0xb7bc2000 )
libXfixes.so. 3 => / usr / lib / libXfixes.so. 3 ( 0xb7bbd000 )
libpango - 1.0 .so. 0 => / usr / lib / libpango - 1.0 .so. 0 ( 0xb7b82000 )
libcairo.so. 2 => / usr / lib / libcairo.so. 2 ( 0xb7b20000 )
libfreetype.so. 6 => / usr / lib / libfreetype.so. 6 ( 0xb7ab6000 )
libz.so. 1 => / usr / lib / libz.so. 1 ( 0xb7aa2000 )
libfontconfig.so. 1 => / usr / lib / libfontconfig.so. 1 ( 0xb7a77000 )
libpng12.so. 0 => / usr / lib / libpng12.so. 0 ( 0xb7a54000 )
libXrender.so. 1 => / usr / lib / libXrender.so. 1 ( 0xb7a4b000 )
libX11.so. 6 => / usr / lib / libX11.so. 6 ( 0xb795f000 )
libgobject - 2.0 .so. 0 => / usr / lib / libgobject - 2.0 .so. 0 ( 0xb7925000 )
libgmodule - 2.0 .so. 0 => / usr / lib / libgmodule - 2.0 .so. 0 ( 0xb7922000 )
libglib - 2.0 .so. 0 => / usr / lib / libglib - 2.0 .so. 0 ( 0xb7890000 )
librt.so. 1 => / lib / tls / i686 / cmov / librt.so. 1 ( 0xb7887000 )
libcodeblocks.so. 0 => not found
libwx_gtk2u_richtext - 2.8 .so. 0 => not found
libwx_gtk2u_aui - 2.8 .so. 0 => not found
libwx_gtk2u_xrc - 2.8 .so. 0 => not found
libwx_gtk2u_qa - 2.8 .so. 0 => not found
libwx_gtk2u_html - 2.8 .so. 0 => not found
libwx_gtk2u_adv - 2.8 .so. 0 => not found
libwx_gtk2u_core - 2.8 .so. 0 => not found
libwx_baseu_xml - 2.8 .so. 0 => not found
libwx_baseu_net - 2.8 .so. 0 => not found
libwx_baseu - 2.8 .so. 0 => not found
libpthread.so. 0 => / lib / tls / i686 / cmov / libpthread.so. 0 ( 0xb7872000 )
libdl.so. 2 => / lib / tls / i686 / cmov / libdl.so. 2 ( 0xb786e000 )
libstdc ++ .so. 6 => / usr / lib / libstdc ++ .so. 6 ( 0xb7789000 )
libm.so. 6 => / lib / tls / i686 / cmov / libm.so. 6 ( 0xb7764000 )
libgcc_s.so. 1 => / lib / libgcc_s.so. 1 ( 0xb7759000 )
libc.so. 6 => / lib / tls / i686 / cmov / libc.so. 6 ( 0xb7627000 )
libpangoft2 - 1.0 .so. 0 => / usr / lib / libpangoft2 - 1.0 .so. 0 ( 0xb75fc000 )
libXau.so. 6 => / usr / lib / libXau.so. 6 ( 0xb75f9000 )
libexpat.so. 1 => / usr / lib / libexpat.so. 1 ( 0xb75d9000 )
libXdmcp.so. 6 => / usr / lib / libXdmcp.so. 6 ( 0xb75d3000 )
/ lib / ld - linux.so. 2 ( 0xb7f9c000 )
其它库是属于libwx的。在源中搜索一下:
aptitude search libwx
很不幸,源里面只有2.4和2.6版本的。所以,我们只好去wx官方去下载2.8的库。
http://www.wxwidgets.org/
我们在:
http://apt.wxwidgets.org/dists/etch-wx/main/binary-i386/
下找到我们需要的共享库文件:
libwxbase2.8-0_2.8.7.1-0_i386.deb 和 libwxgtk2.8-0_2.8.7.1-0_i386.deb
(真快,今天已经更新2.8.8.0了-_-!!!应该也没问题,不过我没试)
把解压出来的so和s-link都放到codeblocks/lib/文件夹下面。最后,我们设置LD_LABRARY_PATH就可以了。
可以直接用这个脚本设置:
# !/ bin / sh生成的启动脚本应该类似这样:($PWD表示当前目录,也就是codeblocks所在的位置。)
echo " #!/bin/sh " > codeblocks
echo " LD_LIBRARY_PATH=$PWD/lib CODEBLOCKS_DATA_DIR=$PWD $PWD/bin/codeblocks " >> codeblocks
chmod + x codeblocks
# !/ bin / sh通过这个脚本就可以启动Code::Blocks了。整个过程不需要root权限哦(你不会想当root敢死队吧。^^)
LD_LIBRARY_PATH =/ home / lf426 / app / code / codeblocks / lib CODEBLOCKS_DATA_DIR =/ home / lf426 / app / code / codeblocks / home / lf426 / app / code / codeblocks / bin / codeblocks