终于在CentOS虚拟机上安好了Code::Blocks,感触良多,收获亦良多。重点在安装步骤的第二步,设置环境变量。
主要的参考链接:
- Linux下c++编译器CodeBlocks安装 http://www.linuxidc.com/Linux/2014-02/97366.htm
- wxWidgets 错误(遇到了和我一样的,装了wxWidgets,但系统偏偏提示木有装。顺便也介绍了wxWidgets)http://www.linuxidc.com/Linux/2014-02/97365.htm
版本相关参数
操作系统:CentOS 5.2
开发库:wxWidgets-2.8.12
软件版本:codeblocks-10.05
安装步骤
一、安装wxWidgets
1.下载wxWidgets源码包,地址:http://www.wxwidgets.org/downloads/
2.解压。可以使用tar命令,CentOS里也可以直接用鼠标右键操作
3.进入解压后的目录,打开终端,依次输入以下命令
./configure (最好不要加上prefix参数,使用默认设置会比较有利于后面步骤的顺利推进)
make (编译。此过程相当漫长,可以打两盘斗地主再回来)
make install (安装。)
安装完成后,终端输出如下提示:
The installation of wxWidgets is finished. On certain
platforms (e.g. Linux) you’ll now have to run ldconfig
if you installed a shared library and also modify the
LD_LIBRARY_PATH (or equivalent) environment variable.
这是说需要设置环境变量LD_LIBRAY_PATH(环境变量的作用是告诉系统寻找wxWidgets开发库该去的路径。因为操作系统的逻辑是,如果在我认为该去的路径没找到的我要的东西的话,我就会认为那个东西木有安装),暂不关闭本大步中打开的终端。
二、设定环境变量LD_LIBRAY_PATH
参考链接:
- ldconfig及 LD_LIBRARY_PATH http://www.linuxidc.com/Linux/2011-10/45744.htm
- Linux环境变量修改和设置 http://www.linuxidc.com/Linux/2012-12/75495.htm
- Linux export 命令 http://www.linuxidc.com/Linux/2012-10/72746.htm
依据上一大步最后得到的提示信息,综合参考资料,我们作出以下操作,
1.仍在第一大步打开的终端,不改变目录,输入以下命令:
ldconfig (这完全是根据第一步最后的提示信息来的)
export -p (查看系统当前环境变量的值,此步仅为了和设置后的效果作对比,可省略)
可以看到现在,LD_LIBRAY_PATH的值是空的(结果中没有此项的存在)。
2.继续输入命令:
./wx-config –libs
得到结果(安装目录不同结果会有小差异):
-L/root/Desktop/wxWidgets-2.8.12/lib -pthread -Wl,-rpath,/root/Desktop/wxWidgets-2.8.12/lib -lwx_gtk2_richtext-2.8 -lwx_gtk2_aui-2.8 -lwx_gtk2_xrc-2.8 -lwx_gtk2_qa-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
3.在/etc目录下找到文件profile,打开它,在里面添加以下命令:
export LD_LIBRARY_PATH=”…………”
引号里的内容为上一小步“./wx-config –libs”的执行结果。export命令用于编辑环境变量,如果你不知道该加在什么位置,请在文件中随意另找一条export命令,跟在他后面即可。保存profile文件。
4.还是在前面打开的终端,继续输入命令:
source /etc/profile (在不用重启系统的情况下使profile修改的内容生效)
export -p (查看系统当前环境变量的值)
这回可以看到,LD_LIBRAY_PATH的值被成功设定为第2小步里“./wx-config –libs”的执行结果。
三、安装codeblocks
1.下载codeblocks源码包,地址:http://www.codeblocks.org/downloads/
2.解压。
3.进入解压后的目录,打开新的终端,依次输入以下命令
./configure –prefix=/usr/local/codeblocks (prefix参数用以指定安装路径。如果跳过了第二大步,则在此会得到没有安装wxWidgets的提示)
make (编译。额,咱们继续斗地主……)
make install (安装。)
OK,至此,Code::Blocks安装圆满完成。在任意目录下打开终端,直接执行codeblocks命令即可运行Code::Blocks。
四、codeblocks汉化
1.下载codeblocks的汉化包,地址:
免费下载地址在 http://linux.linuxidc.com/
用户名与密码都是www.linuxidc.com
具体下载目录在 /2014年资料/2月/5日/Hadoop公平调度器指南 PDF
下载方法见 http://www.linuxidc.com/Linux/2013-07/87684.htm
2.在/usr/share/ 或者/usr/local/share/ 目录下(看你在第三大步中是怎么指定的prefix参数)找到codeblocks目录(内含icons、images、lexers、scripts等资源目录以及一些压缩包),并在该目录下建立一个子文件夹:locale(注意 locale 全为小写字母)。如果找不到,请看步骤3,否则直接看步骤4。
3.在桌面上打开终端,运行命令:locate codeblocks >codeblocks 。运行完毕后,在桌面生成了一个名为codeblocks的文件,打开该文件,从中找到codeblocks目录所在的路径。
4.将所下载的压缩包解压到第2步创建的locale目录下,则locale目录下应出现zh_CN子目录,内有一个名为codeblocks.mo的文件。
5.启动Code::Blocks,点击主菜单的“Settings”,选择“Enviornment”。出现的对话框中,左边选中“View”,右边打勾“Internationalization (needs restart)”,并在后面的复合框中选中“Chinese (Simplified)”。确认退出本对话框。
6.重启Code::Blocks。再看到的应该是中文简体界面了。
主要纠结的问题
1.最早下了一套rpm包,然后在安装到第四个包,libtinyxml0,的时候出现了包依赖问题:
error: Failed dependencies:
libstdc++.so.6(GLIBCXX_3.4.9) is needed by libtinyxml0-2.6.1-9.1.2.i586
rpmlib(PayloadIsLzma) <= 4.4.6-1 is needed by libtinyxml0-2.6.1-9.1.2.i586
这个问题困扰了我很久,搜了很多文档来看都木有解决,最后就放弃了。欢迎知道怎么办的请给我留言,谢谢!
据资源的上传者说,在OpenSUSE Linux下测试通过。如果你也使用这个系统,可以去这个链接看看:http://www.linuxidc.com/Linux/2014-02/97367.htm
2.根据看到的资料,我在安装完wxWidgets之后直接安装codeblocks,结果终端报错,
configure: error:
wxWidgets must be installed on your system
but the wx-config script couldn’t be found.
Please check that wx-config is in path, the directory
where wxWidgets libraries are installed (returned by
‘wx-config –libs’ command) is in LD_LIBRARY_PATH or
equivalent variable and wxWidgets version is 2.8.0 or above.
但是我明明已经安好了wxwidgets啊!找了好多资料,试了好多方法,都木有解决。后来仔细阅读了wxwidgets安装成功后的提示信息,拿来和codeblocks安装初始化的报错信息比对,才终于找到了症结所在:环境变量设置。
基本我看到的所有资料都没提这个问题,但他确实很重要。由此我得到的结论是,网上资料固然多,按部就班问题亦多。若要顺顺利利,还请多看系统提示。
顺手牵羊
1./etc/ld.so.conf
这个文档记录了编译时使用的动态链接库的路径。默认情况下,编译器只会使用/lib和/usr/lib这两个目录下的库文档,如果想往上面两个目录以外加东西的时候,就需要在etc/ld.so.conf.d目录下添加一个conf文件,把新路径加进去,然后再调用ldconfig。
又有一些文献说,如果想往上面两个目录以外加东西的时候,一定要修改/etc/ld.so.conf文件,不然会系统找不到新库。看完后我茫然了,后来我打开了ld.so.conf文件,里面内容如下:
include ld.so.conf.d/*.conf
看完,我突然就懂了。
2.wxWidgets与wxGTK
wxwidgets 是一个c++编写的用来提供gui开发的框架。它包含一个可以支持现今几乎所有操作系统的GUI库。而适用于Linux系统的就是wxGTK,Windows平台下的则叫做wxMSW。
3.使用tar命令时,压缩包不能有“(”等非法符号
Code::Blocks 的详细介绍:请点这里
Code::Blocks 的下载地址:请点这里
Ubuntu 12.04 下安装Code::Block 见 http://www.linuxidc.com/Linux/2012-10/73116.htm
更多CentOS相关信息见CentOS 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=14