=======================
总结:
由于时间有限,最终还是通过下载codeblocks到bin文件进行安装。但前期准备工作还是按照转载文章前3步,
不过wxGTK用的是 wxGTK-2.8.12-1.el5.rf.x86_64.rpm 和 wxGTK-devel-2.8.12-1.el5.rf.x86_64.rpm
安装后无法启动,碰到如下错误:
[root@192 /]# codeblocks
codeblocks: error while loading shared libraries: libexpat.so.0: cannot open shared object file: No such file or directory
通过下面到命令解决
查看相关库位置
# rpm -ql expat
添加映射:
[root@192 /]# codeblocks
codeblock是一个还算不错的IDE,免费、开源、跨平台等一些列优点!
下面是我在CentOS6上安装Codelocks的过程,希望对后来人有所帮助!
1.安装gcc,需要c和c++两部分,默认安装下,CentOS不安装编译器的,在终端输入以下命令即可
yum install gcc
yum install gcc-c++
2.安装gtk2-devel,因为默认已经安装了正式产品需要的支持库,但是没有安装开发所需要的文档.
yum install gtk2*
3. 安装wxGTK,下载地址http://pkgs.repoforge.org/wxGTK/,需要下面两个文件:
wxGTK-devel-2.8.9-1.el5.rf.i386.rpm
wxGTK-2.8.9-1.el5.rf.i386.rpm
使用rpm命令或者双击安装
4.最后,下载codeblocks,使用源码编译安装。进入解压的目录,键入命令:
./configure --prefix=/usr--with-contrib-plugins=all
make
make install
注意需要root权限安装
一切正常对话就安装好来,在 应用程序->编程 中就有了Codelocks!
很兴奋的写了几行代码测试一下:
/**********************************************
* Author:xiaobaoqiu
* From:China University Of Gensciences
* QQ:375722880
* Email:xiaobaoqiu@163.com
* Copyright 2012 by xiaobaoqiu
**********************************************/
#include <iostream>
using namespace std;
int main()
{
cout<<"Hello CodeBlocks!"<<endl;
return 0;
}
编译ok但无法运行出来,没有出现我们熟悉的console界面,仔细看Build Log我发现有下列信息:
Executing:xterm -T Test -e /usr/bin/cb_console_runnerLD_LIBRARY_PATH=$LD_LIBRARY_PATH:./home/*********/Program/Test/bin/Debug/Test (in /home/*********/Program/Test/.)
这里有个xterm很陌生,我们打开菜单Settings->Environment 打开来环境设置界面,我们在General Settings页面中最下面有两个设置(主要看第二个):
Shell to run commands in: /bin/sh -c
Terminal to launch console programs: xterm -T $TITLE -e
这就是说在Linux环境下CodeBlocks调用xterm来模拟控制台界面!
然后我man一下xterm,发现没有!!!!!这应该就是原因来!
所以安装一下xterm:yum install xterm
之后一切ok了,出现来我们熟悉对Console界面!
转载2:
今天下午闲着没事尝试在自己的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-的区别(这里)以前还真没注意过。