Code::Blocks是一款优秀的开源C/C++集成开发环境,在Windows/Linux/Mac系统上都有相应的版本;支持GCC (MingW / GNU GCC)/MSVC++/Digital Mars/Borland C++ 5.5/Open Watcom等多款编译器,并拥有强大的代码级调试功能,并可用来开发QT/wxWidgets/OpenGL应用程序。
wxWidgets是一个开源的跨平台图形界面应用程序开发库,可以创建Windows/Linux/OS X等平台上GUI应用程序。
网上已有的资料对windows系统下Code::Blocks+wxWigets开发环境配置介绍的较为详细,但在Linux系统下的配置过程说明文档则较为分散。本文通过记录Ubuntu 10.04系统下Code::Blocks+wxWidgets开发环境的配置过程,将此过程进行详细说明。
1、安装Code::Blocks需要的wxWidgets库文件
因为Code::Blocks是基于wxWidgets开发的,所以要运行Code::Blocks,必须先安装相应的依赖包,包括wx2.8-headers、libwxgtk2.8-0、libwxgtk2.8-dev。但如果此前你已经用apt-get install安装过这些包,那极有可能Code::Blocks是不能和这些Ubuntu软件源提供的包一起工作的,因为Code::Blocks链接时用的是wxWidgets2.8.12,而官方发布的包版本并不是2.8.12,需要从http://apt.wxwidgets.org安装wxWidgets网站。通过以下步骤重新安装wxWidgets库:
1.1 将http://apt.wxwidgets.org添加到/etc/apt/sources.list
deb http://apt.wxwidgets.org/ lucid-wx main deb-src http://apt.wxwidgets.org/ lucid-wx main
1.2 将http://apt.wxwidgets.org的数字签名文件导入到本地的apt密钥管理库,否则安装时将产生错误。
curl http://apt.wxwidgets.org/key.asc | sudo apt-key add -
1.3 更新软件源索引
sudo apt-get update
1.4 重新安装Code::Blocks需要的wxWidgets库文件
sudo apt-get install wx2.8-headers libwxgtk2.8-0 libwxgtk2.8-dev
2、安装Code::Blocks
从http://www.codeblocks.org下载新的Code::Blocks软件包。Code::Blocks并没有针对Ubuntu专门编译二进制安装包,但有Debian系统可用的.deb软件包。我们只要将该软件包下载下来,在本地用dpkg命令安装即可。最新的Code::Blocks安装包是.tar.bz2的压缩包,下载到本地后解压,发现是若干个.deb文件。用如下命令安装即可:
dpkg -i *.deb
3、从源代码编译安装最新的wxWidgets库
注意:此步骤所编译安装的wxWidgets库和第1步所提的并不相干。第1步锁安装的wxWidgets 2.8.12库是Code::Blocks的依赖库,必须先安装后才能运行Code::Blocks;而本步骤将要编译和安装的wxWidgets库是将来用Code::Blocks开发wxWidgets应用程序时使用的。
3.1 从http://www.wxwidgets.org/下载最新的wxWidgets源代码包,解压后依次运行configure/make/make install命令安装
3.2 运行wx-config --version
如一切正常,应输出2.9.3
此步骤极有可能输出2.8.12,这是因为wx-config命令在第1步安装libwxgtk2.8-dev时已经安装,位置是/usr/bin/wx-config;而在第3步执行make install时,也将新版本的wx-config安装在了/usr/local/bin/wx-config。这可以用which wx-config命令验证。解决办法有两个
1)重命名/usr/bin/wx-config
2)卸载libwxgtk2.8-dev
3.3 更新ldconfig
/sbin/ldconfig /usr/local/lib
这一步是为了将新安装的wxWidgets2.9.3库加入到系统库文件搜索路径中,否则您可能会遇到那个经典的错误:
libwx_gtk2u_aui-2.9.so: cannot open shared object file: No such file or directory.
4、启动Code::Blocks,用工程向导创建wxWidgets工程,一切正常的话,一路next,创建完成后按F9编译,示例应该能正常编译和运行。
5、常见问题
5.1 wx/wx.h: 没有那个文件或目录 (no such file or directory)
常见原因是用向导创建wxWidgets工程时,选择的选项和您编译wxWidgets库时采用的选项不同。wxWidgets所有选项可以在代码目录下执行./configure --help命令查看。
比如您选择了--disable-shared,则编译时将编译静态库;向导创建工程时有个选项就是是否使用wxWidgets动态库,您要根据您的情况进行选择。
参考:
1. http://wiki.wxwidgets.org/Installing_and_configuring_under_Ubuntu
2. http://wiki.codeblocks.org/index.php?title=Installing_Code::Blocks_nightly_build_on_Ubuntu
3. http://wiki.wxwidgets.org/Compiling_and_getting_started