Red Hat 上安裝 CodeBlocks 筆記

今天想在個人RedHat上裝個CodeBlock,費了挺多時間的。裝到要吃晚飯的時候終於成功了,因而決定寫篇文章記錄下個人安裝過程。php

由於安裝過程很是「曲折」,因此這篇文章也記錄了不少我試錯的過程,不少步驟在後面看來均可以算做廢步驟。若是但願看到最精簡的解決方案,能夠求助其餘大牛的安裝過程。這篇文章只至關於我今天在個人計算機上安裝CodeBlock的一個筆記(慚愧~~~ :-P)。html

1.個人環境linux

我是在RedHat上安裝的CodeBlock,版本號能夠用下面這個命令查詢shell

cat /etc/redhat-release

查詢出來的版本信息爲:vim

Red Hat Enterprise Linux Server release 6.4 (Santiago)windows

我在虛擬機裏安裝的是64位的RedHat,關於RedHat是32位仍是64位,能夠用命令oracle

arch

查出來,我查出來的是x86_64,說明是64位的
socket

2.下載CodeBlock網站

登錄到CodeBlock官方網站的下載頁面 http://www.codeblocks.org/downloadsui

登錄後在左側樹形菜單中找到 Main→Download→Binaries

由於我是在RetHat上安裝,因此我選了和RetHat比較近的Fedora上的安裝包

codeblocks-13.12-1.el20.x86_64.tar.xz

我在 Download from 欄中選擇了 Sourceforge.net

安裝過程能夠參考官網本身的wiki頁面 http://wiki.codeblocks.org/index.php?title=Installing_Code::Blocks_nightly_build_on_Fedora

下載後我把它放在了我係統裏 /home/oracle/Downloads/codeblocks (oracle是我在這個linux系統裏的用戶名)

解壓這個文件,輸入命令

xz -d codeblocks-13.12-1.el20.x86_64.tar.xz

解壓後能夠發現目錄 codeblocks-13.12-1.el20.x86_64.tar,再次解壓

tar xvf codeblocks-13.12-1.el20.x86_64.tar

解壓縮後有文件夾 fc20,進入後能夠發現目錄 fc20/x86_64/ 中有四個文件

codeblocks-13.12-1.el29.x86_64.rpm

codeblocks-contrib-devel-13.12-1.el29.x86_64.rpm

codeblocks-contrib-13.12-1.el29.x86_64.rpm

codeblocks-devel-13.12-1.el29.x86_64.rpm

輸入下面的命令進行安裝

yum install codeblocks*

結果安裝失敗,查看提示信息後發現須要wxGTK

3.下載並安裝wxGTK

下載地址:http://www.filewatcher.com/m/wxGTK-2.8.1.tar.bz2.8891289-0.html

這個地址裏有三個下載地址:

2007-01-07  ftp://ftp.wxwindows.org/pub/2.8.1/wxGTK-2.8.1.tar.bz2

2007-01-07  ftp://ftp.wxwidgets.org/pub/2.8.1/wxGTK-2.8.1.tar.bz2

2007-01-07  ftp://biolpc22.york.ac.uk/pub/2.8.1/wxGTK-2.8.1.tar.bz2

我選擇了第三個,下載後可獲得文件 wxGTK-2.8.1.tar.bz2

我把它保存到了目錄 /home/oracle/Downloads/wxgtk 中

輸入下面的命令解壓:

tar jxf wxGTK-2.8.1.tar.bz2

解壓完畢後會有一個目錄 wxGTK-2.8.1 進入後執行如下命令:

./configure --enable-xrc --enable-monolithic --enable-unicode

執行這步時出錯了,RedHat提示我要安裝GTK+

輸入這個命令能夠安裝GTK+

yum install gtk*

查看GTK+安裝狀況,能夠用這個命令:

pkg-config --list-all | grep gtk

我輸入這個命令後獲得的結果是

gtk+-2.0                         GTK+ - GTK+ Graphical UI Library (x11 target)
gtk-doc                          gtk-doc - API documentation generator
gtk+-x11-2.0                  GTK+ - GTK+ Graphical UI Library (x11 target)
gtk+-unix-print-2.0        GTK+ - GTK+ Unix print support

從新運行上面那個配置 wxGTK-2.8.1 的命令

./configure --enable-xrc --enable-monolithic --enable-unicode

就能夠順利執行了,下一步就是輸入make命令

make

這個時候又出現錯誤了:大意是說 struct _GSocket 被typedef了兩次,這個結構的不少屬性找不到

我參考了這篇博客:http://blog.csdn.net/ssl2009/article/details/7062621

找到文件 src/gtk/gsockgtk.cpp,修改上面include部分

...
#include<stdio.h>

//用define圍起來
#define GSocket GlibGSocket  
#include <gdk/gdk.h>  
#include <glib.h>  
#undef GSocket  

#include "wx/gsocket.h"  
#include "wx/unix/gsockunx.h"
...

將 gdk/gdk.h 和 glib.h 的上面添加一個宏 GlibGSocket,在下面再把這個宏取消,就能夠順利編譯經過啦

make
make install

安裝完畢後,輸入命令

wx-config --libs

能夠看到 -L/usr/local/lib -L/usr/lib64 -lwx_gtk2u-2.8

有-lwx_gtk2u-2.8說明安裝成功!安裝後要重啓系統

4.安裝wxWidgets

重啓系統後,我發現以前下載的CodeBlock四個rpm文件仍是無法運行,上網查了下,可能還要裝wxWidgets吧,抱着試試看的心理,就裝了一個:

CSDN上找的資源:http://download.csdn.net/download/chenjack537/4313344

下載後保存到 /home/oracle/Downloads/wxwidgets,解壓縮

tar -xzvf wxWidgets-2.8.12.tar.gz

解壓後會發現一個新目錄 wxWidgets-2.8.12,進入後輸入命令安裝(安裝後重啓系統)

./configure --with-gtk --prefix=/usr
make
make install

5.從新安裝wxGTK 2.8.12

上面的工做進行完畢後,4個rpm文件仍是不能正確運行,提示的錯誤信息依然是找不到so文件

上網查了下,有人說是須要版本2.8.12才能支持CodeBlock(汗!)

只能把以前裝的2.8.1版本的wxGTK先卸載了

rm -rf /usr/bin/wx*
rm -rf /usr/include/wx*
rm -rf /usr/lib/wx*
rm -rf /usr/lib/libwx*
rm -rf /usr/local/bin/wx*
rm -rf /usr/local/include/wx*
rm -rf /usr/local/lib/wx*
rm -rf /usr/local/lib/libwx*
ldconfig

這回我下載了 wxGTK-2.8.12-1.el6.rf.i686.rpm

仍是從CSDN上找的資源:http://download.csdn.net/download/muyazhong/4689639

下載後保存到目錄 /home/oracle/Downloads/wxgtk-2.8.12

輸入下面的命令安裝:

yum install wxGTK-2.8.12-1.el6.rf.i686.rpm

重啓電腦後,輸入命令

wx-config --version

能夠發現版本號從以前的 2.8.1 變成了 2.8.12

此次安裝,因爲沒有像以前那樣在configure腳本中輸入 --prefix=/usr,所以要進行以下操做:

vi /etc/ld.so.conf

在最後一行添加 /usr/local/lib

保存後退出,用ldconfig命令加載剛纔的設定

下面是此時個人Linux對三個命令的反應

命令:wx-config --prefix

輸出:/usr

命令:wx-config --libs

輸出:-pthread -L/usr/lib64 -lwx_gtk2_richtext-2.9 -lwx_gtk2_aui-2.8 -lwx_gtk2_xrc-2.8 -lwx_gtk2_qu_2.8 -lwx_gtk2_html_2.8 -lwx_gtk2_adv_2.8 -lwx_gtk2_core-2.8 -lwx_base_xml-2.8 -lwx_base_net-2.8 -lwx_base-2.8

命令:which wx-config

輸出:/usr/bin/wx-config

6.從新下載CodeBlock

遺憾的是,此次雖然把wxGTK的版本調到了2.8.12,以前下載的4個rpm文件仍是無法運行(==!)

我以爲應該換一個包試一試,我又在SourceForge裏找了個低一些的CodeBlock版本:

http://ncu.dl.sourceforge.net/sourceforge/codeblocks/codeblocks-8.02-src.tar.bz2

下載後我把它保存到 /home/oracle/Downloads/codeblocks-8 .02

輸入命令解壓縮文件:

tar jxf codeblocks-8.02-src.tar.bz2

獲得目錄 codeblocks-8.02,進入後,輸入命令:

./configure -prefix=/usr

運行徹底正常,這個時候再用make編譯,結果報錯!

錯誤信息說 prefix.cpp 的第396和432行存在語法錯誤:invalid conversion from 'const char*' to 'char*'

這個時候,就須要對代碼進行修改

vim ./src/src/prefix.cpp

到第396行和第432行,原來的語句爲

end = strrchr (path, '/');

如今把它們都改成

end = strrchr (const_cast<char*>(path), '/');

這個時候從新make,就能夠成功編譯經過了

make
make install

編譯完畢後重啓系統。

7.運行CodeBlock

在終端(Terminal)中輸入命令

codeblocks

這個時候若是報錯:codeblocks: error while loading shared libraries: libcodeblocks.so.0: cannot open shared object file: No such file or directory

以root身份進入到文件 /etc/ld.so.conf 中,將/usr/local/lib加入到文件末尾,並輸入命令ldconfig,就能夠解決了

第一次進入CodeBlock時,彈出了窗口 Compilers auto-detection,我這裏只有 GNU GCC Compiler 是 Detected狀態,因而直接把它「Set as default」


這樣就能夠進入到CodeBlock界面中了

8.一個HelloWorld程序

下面我來建立一個HelloWorld程序

在上方的菜單中選擇:File→New→Project

在彈出窗口的左側列表中選擇Files,選擇C/C++ Source

語言選擇C(在C和C++之間選擇),Filename with full path項中選擇:/home/oracle/Documents/codeblocktest.c

在這個文件中寫下以下代碼:

#include <stdio.h>
void main()
{
    printf("Hello World!\n");
}

按下Build按鈕進行編譯

下方的Build log會提示編譯情況

Build完畢後,會發現.o文件和可執行文件已經被自動生成好,在命令行中直接就能夠運行了。

END

相關文章
相關標籤/搜索