2013-10-16 31 views
1

我想從源碼安裝QT Creator在Centos 6.我已經安裝(我認爲是)Qt5庫到我的系統上使用百勝。當我檢查RPM的安裝,我看到包括錯誤的Qt版本頭文件

[qt-creator-2.8.1-src]# rpm -qa | grep qt 
qt5-qtbase-x11-5.1.1-3.el6.x86_64 
qt-4.6.2-26.el6_4.x86_64 
qt-sqlite-4.6.2-26.el6_4.x86_64 
qt-x11-4.6.2-26.el6_4.x86_64 
qt5-qtbase-5.1.1-3.el6.x86_64 
ibus-qt-1.3.0-2.el6.x86_64 
qt3-3.3.8b-30.el6.x86_64 
qt5-qtbase-devel-5.1.1-3.el6.x86_64 
qt-devel-4.6.2-26.el6_4.x86_64 
qt3-devel-3.3.8b-30.el6.x86_64 

所以QT5似乎安裝,但這樣是QT4和QT3(也許一些其他應用程序必需的,但是這是一個非常簡單的系統)。所以現在我已經下載了QT Creator源代碼,並且正在嘗試編譯。我給了qt5 qmake(/ usr/lib64/qt5/bin/qmake qtcreator.pro)的完整路徑,並且工作正常。但現在,當我發出命令讓我看到:

[qt-creator-2.8.1-src]# make 
cd src/ && (test -e Makefile || /usr/lib64/qt5/bin/qmake /usr/src/qtcreator/qt-creator-2.8.1-src/src/src.pro -o Makefile) && make -f Makefile 
make[1]: Entering directory `/usr/src/qtcreator/qt-creator-2.8.1-src/src' 
cd libs && make -f Makefile 
make[2]: Entering directory `/usr/src/qtcreator/qt-creator-2.8.1-src/src/libs' 
cd aggregation && make -f Makefile 
make[3]: Entering directory `/usr/src/qtcreator/qt-creator-2.8.1-src/src/libs/aggregation' 
g++ -c -pipe -Wall -W -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fno-strict-aliasing -fPIC -DAGGREGATION_LIBRARY -DQT_NO_DEBUG -DQT_SHARED -DQT_TABLET_SUPPORT -DQT_THREAD_SUPPORT -I/usr/lib64/qt-3.3/mkspecs/default -I. -I/src -I\ -I/usr/lib64/qt-3.3/include -o aggregate.o aggregate.cpp 
In file included from aggregate.h:33, 
       from aggregate.cpp:30: 
aggregation_global.h:33:21: error: qglobal.h: No such file or directory 
In file included from aggregate.cpp:30: 
aggregate.h:35:19: error: QObject: No such file or directory 
aggregate.h:36:17: error: QList: No such file or directory 
aggregate.h:37:17: error: QHash: No such file or directory 
aggregate.h:38:26: error: QReadWriteLock: No such file or directory 
aggregate.h:39:23: error: QReadLocker: No such file or directory 
aggregate.cpp:32:24: error: QWriteLocker: No such file or directory 
aggregate.cpp:33:18: error: QDebug: No such file or directory 
In file included from aggregate.cpp:30: 
aggregate.h:43: error: expected initializer before ‘:’ token 
aggregate.cpp:277: error: expected ‘}’ at end of input 
make[3]: *** [aggregate.o] Error 1 
make[3]: Leaving directory `/usr/src/qtcreator/qt-creator-2.8.1-src/src/libs/aggregation' 
make[2]: *** [sub-aggregation] Error 2 
make[2]: Leaving directory `/usr/src/qtcreator/qt-creator-2.8.1-src/src/libs' 
make[1]: *** [sub-libs] Error 2 
make[1]: Leaving directory `/usr/src/qtcreator/qt-creator-2.8.1-src/src' 
make: *** [sub-src-make_first-ordered] Error 2 

所以它看起來像提出的是,包括QT 3.3頭我的/ usr/lib64下/ QT-3.3/mkspecs /默認)。我如何告訴make或qmake使用Qt5頭文件/庫?


我刪除QT3-devel包如下建議,現在我的錯誤更改:

cd src/ && (test -e Makefile || /opt/Qt/5.1.1/gcc_64/bin/qmake /usr/src/qtcreator/qt-creator-2.8.1-src/src/src.pro -o Makefile) && make -f Makefile 
make[1]: Entering directory `/usr/src/qtcreator/qt-creator-2.8.1-src/src' 
make[1]: *** No rule to make target `/usr/lib64/qt-3.3/mkspecs/default/qmake.conf', needed by `Makefile'. Stop. 
make[1]: Leaving directory `/usr/src/qtcreator/qt-creator-2.8.1-src/src' 
make: *** [sub-src-make_first-ordered] Error 2 

,你可以看到做仍然引用QT3的東西。

+0

我會嘗試卸載qt3-devel-3.3.8b-30.el6.x86_64。我不認爲這會傷害其他應用程序。 – drescherjm

+0

我刪除了它,但沒有解決問題。 (也嘗試重新啓動 - 習慣從Windows世界)。我看到這些env變量設置:QTDIR =/usr/lib64/qt-3.3 QTINC =/usr/lib64/qt-3.3/include QTLIB =/usr/lib64/qt-3.3/lib SO我嘗試覆寫他們,沒有差異 – TSG

+0

你修復環境變量後重新運行qmake? – Chris

回答

1

對於那些遇到相同的解決方案:

  1. 刪除QT3-devel的
  2. 安裝qt5- *(否則make過程會抱怨缺少的項目)。你也許可以更有選擇性,但10後的時間安裝單獨的軟件包基於化妝抱怨,我只是把他們全押。
  3. 運行的qmake給出的完整路徑qmake的QT5版本
  4. 運行「QMAKE -r」不'qmake qtcreator.pro'