最近在学习Code::Blocks(CB),感觉CB很强大很开放,尤其是它的纯插件式的框架,非常赞。
但是从VS到CB的转型实在是痛苦的,在VS下面没有问题的程序,放到CB中编译就不能通过。。。
另外,要使用CB+MinGW进行开发还需要将开发中用到的开源库都用MinGW编译好,wxWidgets、GDAL、Qt、Ossim……
网上的教程不少,但多是转来转去的,其实就是那一两个版本,说起来都很顺利,按照他们提供的步骤去编译却总是遇到一些奇怪的问题,很不好解决。
好在Qt官方网站提供了MinGW版本,直接安装就行了。这里说说在CB+MinGW环境下使用Qt的方法以及遇到的问题。
这里默认Code::Blocks+MinGW的环境已经配置好。
1、 首先在http://qt.nokia.com/downloads/windows-cpp网站上下载Qt的MinGW库(300M+),安装。
相应的VS2008版本可以从http://qt.nokia.com/downloads/windows-cpp-vs2008 下载,比较恶心的是这两个版本的库不能安装在同一个目录下面。所以我就将MinGW版本的库安装在了C:\Qt\4.7.4\MinGW下。
(之前安装过Qt SDK完全版(1.6G),装完5G+,居然不包含MinGW版本的库。。。)
2、然后在“我的电脑→属性→高级系统设置→高级→环境变量”中设置环境变量。
编辑PATH,添加”C:\Qt\4.7.4\MinGW\bin”,添加的位置要靠前一点,不然可能会被排在前面的其他版本的Qt库所覆盖。我就是被这个问题困扰了好几天,在安装完MinGW版本的Qt库后,在Code::Blocks中新建了一个Qt4的工程,然后Build and Run,总是提示“无法定位程序输入点qUnregisterResourceData@@YA_NHPBE00@Z于动态链接库 QtCore4.dll”的错误,虽然知道是dll库的问题,但是始终没查出问题具体出在哪。最后发现时因为之前装过OSGeo4W,其中包含了Qt库,而OSGeo4W\bin目录在PATH中比较靠前,于是后面安装的MinGW版本的Qt库一直处于被忽略的状态。将”C:\Qt\4.7.4\MinGW\bin”放到它前面就OK了。