今天下午閑著沒事嘗試在自己的PC中的CentOS上裝一個Code::Blocks,因為是Linux菜鳥折騰了一下午才基本算搞定但依然有疑惑:
在網上各種穀哥度娘最後才發現還是官方的文檔最靠譜:看這裡。
上面講的比較詳細,下面簡單總結一下安裝的步驟:
wxWidgets安裝
Code::Blocks的介面依賴於wxWidgets,所以需要先安裝它,至於wxWidgets是什麼可以百度一下,具體我也不清楚。只知道wxWidgets是一個跨平台的GUI庫,而在Linux上它依賴於GDK+,GDK+就相當於函數庫,所以不用擔心它在你的系統中肯定是有的。事實上C::B真正使用的wxWidgets是wxGDK,所以我們首先需要安裝的其實是wxGDK庫,版本要求大於2.8.0,官方文檔說libwxGDK-2.8.3有點問題,所以不推薦。
下載wxGDK:到這裡。注意選擇wxGDK,我下的是wxGTK-2.8.12.tar.gz。
解壓縮:
tar zxf wxGTK-2.8.12.tar.gzcd wxGTK-2.8.12
安裝:
mkdir build_gtk2_shared_monolithic_unicodecd build_gtk2_shared_monolithic_unicode../configure --prefix=/opt/wx/2.8 \ --enable-xrc \ --enable-monolithic \ --enable-unicodemakesumake installexit
安裝的路徑是/opt/wx/2.8/。
設定環境變數:
export PATH=/usr/bin:/opt/wx/2.8/bin:$PATH
然後運行如下命令:
ldconfigsource /etc/profile
ldconfig命令的作用是讓動態連結程式庫為系統所共用,source命令的作用簡單來說就是使得設定檔的修改立即生效而不需要重啟。
安裝Code::Blocks
在安裝之前還需要先確定一下有沒有安裝gcc編譯器,如果沒有yum安裝一下,很簡單:
yum install gcc-c++
注意:不是yum install g++,我一開始想當然了。
下載Code::Blocks:在這裡。我下的是tar包。
解壓縮然後依次執行下面的命令:
bootstrap
./bootstrap
bootstrap命令的作用是設定configure指令碼及其依賴關係,這個命令只需要執行一次,運行這個命令如果出現下面的錯誤:
./bootstrap: libtoolize: not found
說明機子上沒有安裝“libtool”,yum安裝下即可:
yum install libtool
configure
./configure --with-wx-config=/opt/wx/2.8/bin/wx-config
注意:如果如果wxGDK不是安裝在預設的路徑這裡需要--with-wx-config指定,否則make過程中會提示有error。
接下來安裝等待即可:
makemake 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"
LD_LIBRARY_PATH這個環境變數的作用是讓其他程式找到第三方的動態串連庫。設定後就沒可以通過命令列啟動C::B了。
疑問:但是奇怪的是上面這個命令我是在root許可權下進行的,按照這裡所說這種配置方法是對所有使用者都生效的,但是我的實際情況是必須切換到root許可權下才能啟動C::B而且必須通過su -來進行切換(關於su和su-的區別看這http://www.ha97.com/4001.html。)不知道哪位同學知道能告知一下,我再去學習學習。
錯誤修正:上面的疑惑我重啟下電腦都沒了,實在不好意思(竟然發到首頁去了,本打算多請教請教),但是通過一下午折騰對linux命令又多熟悉了點,比如su和su-的區別(這裡)以前還真沒注意過。