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

相关文章
相关标签/搜索