今天下午閑着沒事嘗試在自己的PC中的CentOS上裝一個Code::Blocks,因為是Linux菜鳥折騰了一下午才基本算搞定但依然有疑惑:

在網上各種谷哥度娘最后才發現還是官方的文檔最靠譜:看這里。
上面講的比較詳細,下面簡單總結一下安裝的步驟:
wxWidgets安裝
先安裝GTK+
yum install gtk+*
Code::Blocks的界面依賴於wxWidgets,所以需要先安裝它,至於wxWidgets是什么可以百度一下,具體我也不清楚。只知道wxWidgets是一個跨平台的GUI庫,而在Linux上它依賴於GDK+,GDK+就相當於函數庫,所以不用擔心它在你的系統中肯定是有的。事實上C::B真正使用的wxWidgets是wxGDK,所以我們首先需要安裝的其實是wxGDK庫,版本要求大於2.8.0,官方文檔說libwxGDK-2.8.3有點問題,所以不推薦。
下載wxGDK:到這里。注意選擇wxGTK,我下的是wxGTK-2.8.12.tar.gz。
解壓縮:
tar zxf wxGTK-2.8.12.tar.gz cd wxGTK-2.8.12
安裝:
mkdir build_gtk2_shared_monolithic_unicode cd build_gtk2_shared_monolithic_unicode ../configure --prefix=/opt/wx/2.8 \ --enable-xrc \ --enable-monolithic \ --enable-unicode make su make install exit
安裝的路徑是/opt/wx/2.8/。
設置環境變量:
export PATH=/usr/bin:/opt/wx/2.8/bin:$PATH
然后運行如下命令:
ldconfig
source /etc/profile
ldconfig命令的作用是讓動態鏈接庫為系統所共享,source命令的作用簡單來說就是使得配置文件的修改立即生效而不需要重啟。
安裝Code::Blocks
在安裝之前還需要先確定一下有沒有安裝gcc編譯器,如果沒有yum安裝一下,很簡單:
yum install gcc-c++
注意:不是yum install g++,我一開始想當然了。下載Code::Blocks(12.11):在這里。我下的是tar包。
解壓縮然后依次執行下面的命令:
bootstrap
./bootstrap
bootstrap命令的作用是設置configure腳本及其依賴關系,這個命令只需要執行一次,運行這個命令如果出現下面的錯誤:
./bootstrap: libtoolize: not found
說明機子上沒有安裝“libtool”,yum安裝下即可:
yum install libtool
可能還會報錯:
configure.in:79: warning: macro `AM_OPTIONS_WXCONFIG' not found in library configure.in:80: warning: macro `AM_PATH_WXCONFIG' not found in library configure.in:79: error: possibly undefined macro: AM_OPTIONS_WXCONFIG If this token and others are legitimate, please use m4_pattern_allow. See the Autoconf documentation. configure.in:80: error: possibly undefined macro: AM_PATH_WXCONFIG
將wxGTK-2.8.12下的wxwin.m4復制到/usr/share/aclocal
cp ../wxwin.m4 /usr/share/aclocal
configure
./configure --with-wx-config=/opt/wx/2.8/bin/wx-config
注意:如果如果wxGDK不是安裝在默認的路徑這里需要--with-wx-config指定,否則make過程中會提示有error。
接下來安裝等待即可:
make make install
等安裝完成后,就可以在Application中找到C::B的圖標了。

但是我安裝后點它卻發現啟動不起來,通過終端命令啟動發現錯誤信息如下:

意思是找不到libwx_gtk2u-2.8.s0.0這個動態鏈接庫,解決方法是設置LD_LIBRARY_PATH變量:
export LD_LIBRARY_PATH =/opt/wx/2.8/lib/
這種方式是臨時的設置環境變量,關閉shell就會失效,需要永久的設置環境變量參看這里這里,修改/etc/profile文件,加入下面這行:
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/opt/wx/2.8/lib"
source /etc/profile
LD_LIBRARY_PATH這個環境變量的作用是讓其他程序找到第三方的動態連接庫。設置后就沒可以通過命令行啟動C::B了。
疑問:但是奇怪的是上面這個命令我是在root權限下進行的,按照這里所說這種配置方法是對所有用戶都生效的,但是我的實際情況是必須切換到root權限下才能啟動C::B而且必須通過su -來進行切換(關於su和su-的區別看這http://www.ha97.com/4001.html。)不知道哪位同學知道能告知一下,我再去學習學習。
糾錯:上面的疑惑我重啟下電腦都沒了,實在不好意思(竟然發到首頁去了,本打算多請教請教),但是通過一下午折騰對linux命令又多熟悉了點,比如su和su-的區別(這里)以前還真沒注意過。
