本文简述QtCreator与Eclipse CDT的集成。QtCreator是Nokia提供的一个新的专用于开发Qt程序的IDE,目前仍为beta版。QtCreator将安装MingW及Qt库本身,可以轻易集成到Eclipse CDT IDE中,而不必再另外下载Qt开发包及MingW编译环境。另外也顺便说一下使用时碰到的问题及解决方法。
下载并安装(我使用的版本):
- qtcreator-0.9.1-beta-windows-setup.exe
- eclipse-cpp-ganymede-SR1-win32.zip
- qt-eclipse-integration-win32-1.4.3.exe
上面1将安装QtCreator,安装QtCreator时将同时安装MingW及Qt库。
2为Eclipse CDT,3为Qt的Eclipse插件,安装这个插件后稍加配置MingW及Qt库的路径即可在Eclipse CDT下使用Qt。我的路径分别为:
C:/Qt/QtCreator/mingw、C:/Qt/QtCreator/qt
至此,你可以使用QtCreator IDE,也可以使用Eclipse CDT IDE,随自己的喜好而定。
下面描述在Eclipse CDT下运行Qt程序碰到的问题:
问题1、make命令找不到
在Qt插件安装后,你可以通过运行C:/eclipse/start.bat来启动支持Qt的Eclipse。否则直接运行Eclipse后无法编译Qt程序。
【解决】在系统的环境变量中添加:C:/Qt/QtCreator/mingw/bin后,就可以不用start.bat而直接运行Eclipse.exe了;若编译时提示找不到make命令,则可按下面的方法修改一下:找到文件mingw32-make.exe,默认路径为C:/Qt/QtCreator/mingw/bin/mingw32-make.exe,拷贝一份并更名为make.exe即可。注意不要直接更名,QtCreator仍使用mingw32-make.exe。当然,你也可以配置Eclipse CDT直接使用mingw32-make.exe,本文没采用这个做法。
问题2、在Eclipse CDT下用MingW gdb调试Qt程序时,报错
gdb: unknown target exception 0xc0000135 at 0x7c984ed1
You can't do that without a process to debug.
而直接运行程序时没有问题。
【解决】问题在于exe依赖的dll找不到,尽管在Eclipse中程序的Debug Configurations中已经配置了PATH变量,不知何故在debug模式下运行时却不起作用。解决办法是将路径C:/Qt/QtCreator/qt/bin也添加到系统的PATH环境变量。
在上面的问题解决后,可能会碰到另外一个问题: 程序总是停在ntdll的某个函数,而未进入main函数,比如:
7 ntdll!LdrAddRefDll() 0x7c92ebab
其解决方法是:打开程序的Debug Configurations,修改Debugger Options:不要选"Load shared library symbols automatically"。