Windows-Qt-EclipseCDT 環境問題集
問題1:Qt的makefile 文件損壞。需要手動重新生成。
解決方法:從命令提示行進入Qt的工程目錄,使用qmake -project 和qmake生成Makefile文件我們將要使用其生成的Makefile.Release文件)。注意,重新生成的文件頭部可能不同,需要自己添加庫,如:
TARGET = Test
QT += core \
gui \
xml
問題2:給eclipse設置Qt Versions時,找不到qmake等文件。
解決方法:新版QtSDK的qmake等文件路徑非常古怪,qmake等文件在Desktop\Qt路徑下。
問題3:無法編譯,控制台提示為:
Makefile:66: *** multiple target patterns. Stop.
解決方法:一定要用Qt的eclipse插件目錄中的,start.bat啟動eclipse,像平常那樣直接啟動eclipse.exe是沒用的。
問題4:無法編譯,控制台提示為:
(Cannot run program "make": Launching failed)
解決方法:在mingw/bin中復制一份mingw32-make.exe,改名為make.exe。
問題5:無法啟動調試,控制台提示為:
[New thread 5020.0x100c]
You can't do that without a process to debug.
解決方法:modify D:/Qt/qt-eclipse-integration-win32-1.6.1/start.bat as:
@echo off
rem
rem This file is generated by the installer
rem
echo Setting up environment...
echo -- Using MinGW in: D:/Qt/4.6.2_for_mingw/bin;D:/Qt/mingw/bin;
set PATH=D:/Qt/4.6.2_for_mingw/bin;D:/Qt/mingw/bin;D:/Qt/4.6.2_for_mingw/lib
set PATH=%PATH%;%SystemRoot%/System32
echo Starting eclipse...
cd D:/Qt/eclipse-cpp-galileo-SR2-win32/eclipse
start eclipse.exe -clean
exit
now I can debug qt program in eclipse.
問題6:method setupUi could not be resolved
eclipse不能識別ui.*,報錯。例如:
Hi
I'm working on Eclipse IDE with qt4 plugin. Everythings work fine, all programs are compiling well, with no errors from compilator.
But I have one very annoying error which comes from Eclipse IDE.
syntax checker underlines ui.setupUi(this); with message: Method setupUi could not be resolved. This error have no matter for my application, and its work fine. but i cant stand to see the red underline in my project. I think that the problem is with my eclipse configuration.
here is the class with that error:
Qt Code:
Switch view
-
#include "qtmyapp.h"
-
-
QTMyApp::QTMyApp(QWidget *parent)
-
: QWidget(parent)
-
{
-
ui.setupUi(this); // <-- here is the error
-
}
-
-
QTMyApp::~QTMyApp()
-
{
-
-
}
-
-
#include <QtGui/QWidget>
-
#include "ui_qtmyapp.h"
-
-
class QTMyApp : public QWidget
-
{
-
Q_OBJECT
-
-
public:
-
QTMyApp(QWidget *parent = 0);
-
~QTMyApp();
-
-
private:
-
Ui::QTMyAppClass ui; //<-- and here
-
};
解決方法:
Re: Eclipse error - method setupUi could not be resolved
Hi,
I had exactly the same error. I found this solution:
1 - Go to your project's properties [alt+enter];
2 - Go to left menu option C/C++ general->Indexer;
3 - Check all check boxes (just like the picture).
問題7:如何使用release編譯
解決方法:project properties->C/C++ Make Project->Make Builder->Build(Incremetal Build) 屬性 修改為release
問題8:調試時會在進入main之前,會停住。提示為:
No source available for "main() at 0x401729"
解決方法:Debug Configurations->Debugger->不要選中Stop on startup at main。非常莫名其妙的玩意
問題9:如何安裝Windows-Qt-EclipseCDT環境
解決方案:現在不需要單獨下MinGW了,也不需要自己編譯Qt才能調試了,只需要安裝QtSDK,EclipseCDT和qt-eclipse-integration插件就行了,非常簡單,可以參考http://blog.csdn.net/delores/article/details/5469731
問題10:如何使用頭文件索引文件管理頭文件
這是一個經典技巧,除了微軟的篩選器虛擬文件夾)以外,大部分IDE還是通過物理文件夾組織頭文件,所以如何組織頭文件是非常費力的。一般我們都是用一個索引頭文件來表示,例如
src/xxx/yyy/zzz/A.h
src/xxx/yyy/zzz/A.cpp
src/aaa/bbb/ccc/B.cpp
如何給B.cpp導入A.h,如果使用相對路徑,管理大量頭文件非常復雜
解決方案:我們可以寫一個索引頭文件
inc/A.h
在其內部 #include "../src/xxx/yyy/zzz/A.h"
在B.cpp中可直接導入
#include "A.h"
然後只需要在*.pro中使用
INCLUDEPATH += inc
另外,需要在project->Proeperties->C/C++ Include Paths and Symbols
點Add External Include Path...
導入inc的目錄,這樣才能使用自動完成功能
問題11:為何配置了圖標路徑,結果不顯示
解決方法:qrc中使用的是前綴+相對路徑的描述方式,例如:
<qresource prefix="/">
<file>images/01042.png</file>
他在項目中的相對路徑就是images/01042.png,而他最終路徑則一般是前綴+相對路徑的合成路徑,所以為了保持一致,一般我們把前綴設置為/
問題12:STL自動完成不能提示,或STL代碼不能編譯
解決方法:
1.windows->preferences->Build->Environment->添加兩個變量
CPLUS_INCLUDE_PATH
D:\windows7\soft\QtSDK\mingw\lib\gcc\mingw32\4.4.0\include\c++
C_INCLUDE_PATH
D:\windows7\soft\QtSDK\mingw\include
2.project->Proeperties->C/C++ Include Paths and Symbols
點Add External Include Path...
添加如下路徑
D:\windows7\soft\QtSDK\mingw\include
D:\windows7\soft\QtSDK\mingw\lib\gcc\mingw32\4.4.0\include
D:\windows7\soft\QtSDK\mingw\lib\gcc\mingw32\4.4.0\include\c++
D:\windows7\soft\QtSDK\mingw\lib\gcc\mingw32\4.4.0\include\c++\bits
D:\windows7\soft\QtSDK\mingw\lib\gcc\mingw32\4.4.0\include\c++\mingw32
D:\windows7\soft\QtSDK\mingw\lib\gcc\mingw32\4.4.0\include\c++\backward
3.右鍵點項目,選擇index->rebuild
問題13:程序總是停在ntdll的某個函數,而未進入main函數
比如:7 ntdll!LdrAddRefDll() 0x7c92ebab
解決方法:打開程序的Debug Configurations,修改Debugger Options:不要選"Load shared library symbols automatically"。
問題14:Qt的幫助文檔在哪裡
解決方法:Desktop\Qt\4.7.4\mingw\bin\assistant.exe
問題15:Qt幫助文檔為什麼打開是空的
解決方法:你安裝目錄下有沒有這個文件 qt.qch 若有 這樣操作 在edit->preferences->documentation 添加那個文件 再檢索
問題16:調試時,打斷點無法命中
提示為:Breakpoint attribute problem: installation failed
暫未解決
問題17:release編譯的exe,無法在沒有安裝Qt的windwos環境中運行
解決方法:將運行需要的dll和exe一起打包即可,例如:
libgcc_s_dw2-1.dll
mingwm10.dll
QtCore4.dll
QtGui4.dll
QtXml4.dll
問題18:如何開啟編譯器預定義宏
解決方法:項目屬性 - C/C++ General - Paths and Symbols 其中Symbols就是宏定義,Libraries就是靜態庫,直接寫名字。再把自己的庫路徑寫到LibraryPaths裡就可以了。
問題19:QtDesigner在編輯QWidget無法創建QToolBar的問題
解決方法:寫把xml修改為QMainWindow,添加若干QToolBar,然後修改回QWidget,就可以使用了。
本文出自 “老G的小屋” 博客,請務必保留此出處http://4137613.blog.51cto.com/4127613/743342