找回密码
 立即注册
收起左侧

突然 compile error

4
回复
6135
查看
[复制链接]

尚未签到

来源: 2015-6-4 18:34:35 显示全部楼层 |阅读模式

马上注册,查看详细内容!注册请先查看:注册须知

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
你好!
我的電腦配置是ubuntu 11.10
Qt Creator 2.2.1Based on Qt 4.7.3 (32 bit)

原本安安穩穩作些小程式
誰知昨日突然開始出現compile error
訊息如下:
有誰好心可以幫我度過這關嗎?
//-----------------

Running build steps for project addressbook...
Configuration unchanged, skipping qmake step.
Starting: "/usr/bin/make" -w
make: Entering directory `/home/hank/workspace-qt/examples/itemviews/addressbook-build-desktop'
g++ -c -pipe -g -Wall -W -D_REENTRANT -DQT_WEBKIT -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I../addressbook -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I../addressbook -I. -o adddialog.o ../addressbook/adddialog.cpp
In file included from /usr/include/qt4/QtCore/qhash.h:49:0,
                 from /usr/include/qt4/QtCore/qset.h:45,
                 from /usr/include/qt4/QtCore/qstatemachine.h:50,
                 from /usr/include/qt4/QtCore/QtCore:10,
                 from /usr/include/qt4/QtGui/QtGui:3,
                 from ../addressbook/adddialog.cpp:41:
/usr/include/qt4/QtCore/qpair.h:59:11: 錯誤: ISO C++ 不允許宣告無類型的 「QPair」 [-fpermissive]
/usr/include/qt4/QtCore/qpair.h:60:37: 錯誤: ISO C++ 不允許宣告無類型的 「QPair」 [-fpermissive]
/usr/include/qt4/QtCore/qpair.h:62:5: 錯誤: 「QPair」 沒有命名一個類型
/usr/include/qt4/QtCore/qpair.h: In member function 「int Pair<T1, T2>:Pair()」:
/usr/include/qt4/QtCore/qpair.h:59:15: 錯誤: only constructors take member initializers
/usr/include/qt4/QtCore/qpair.h:59:42: 警告: 在有回傳值的函式中未發現 return 敘述 [-Wreturn-type]
/usr/include/qt4/QtCore/qpair.h: In member function 「int Pair<T1, T2>:Pair(const T1&, const T2&)」:
/usr/include/qt4/QtCore/qpair.h:60:41: 錯誤: only constructors take member initializers
/usr/include/qt4/QtCore/qpair.h:60:64: 警告: 在有回傳值的函式中未發現 return 敘述 [-Wreturn-type]
/usr/include/qt4/QtCore/qpair.h: At global scope:
/usr/include/qt4/QtCore/qpair.h:70:41: 錯誤: 「QPair」 沒有命名一個類型
/usr/include/qt4/QtCore/qpair.h:70:41: 錯誤: ISO C++ 不允許宣告無類型的 「parameter」 [-fpermissive]
/usr/include/qt4/QtCore/qpair.h:70:46: 錯誤: expected 「,」 or 「...」 before 「<」 token
/usr/include/qt4/QtCore/qpair.h:70:83: 錯誤: 「bool operator==(int)」 的引數必須有類別或列舉類型
/usr/include/qt4/QtCore/qpair.h:74:41: 錯誤: 「QPair」 沒有命名一個類型
/usr/include/qt4/QtCore/qpair.h:74:41: 錯誤: ISO C++ 不允許宣告無類型的 「parameter」 [-fpermissive]
/usr/include/qt4/QtCore/qpair.h:74:46: 錯誤: expected 「,」 or 「...」 before 「<」 token
/usr/include/qt4/QtCore/qpair.h:74:83: 錯誤: 「bool operator!=(int)」 的引數必須有類別或列舉類型
/usr/include/qt4/QtCore/qpair.h:78:40: 錯誤: 「QPair」 沒有命名一個類型
/usr/include/qt4/QtCore/qpair.h:78:40: 錯誤: ISO C++ 不允許宣告無類型的 「parameter」 [-fpermissive]
/usr/include/qt4/QtCore/qpair.h:78:45: 錯誤: expected 「,」 or 「...」 before 「<」 token
/usr/include/qt4/QtCore/qpair.h:78:82: 錯誤: 「bool operator<(int)」 的引數必須有類別或列舉類型
/usr/include/qt4/QtCore/qpair.h:84:40: 錯誤: 「QPair」 沒有命名一個類型
/usr/include/qt4/QtCore/qpair.h:84:40: 錯誤: ISO C++ 不允許宣告無類型的 「parameter」 [-fpermissive]
/usr/include/qt4/QtCore/qpair.h:84:45: 錯誤: expected 「,」 or 「...」 before 「<」 token
/usr/include/qt4/QtCore/qpair.h:84:82: 錯誤: 「bool operator>(int)」 的引數必須有類別或列舉類型
/usr/include/qt4/QtCore/qpair.h:90:41: 錯誤: 「QPair」 沒有命名一個類型
/usr/include/qt4/QtCore/qpair.h:90:41: 錯誤: ISO C++ 不允許宣告無類型的 「parameter」 [-fpermissive]
/usr/include/qt4/QtCore/qpair.h:90:46: 錯誤: expected 「,」 or 「...」 before 「<」 token
/usr/include/qt4/QtCore/qpair.h:90:83: 錯誤: 「bool operator<=(int)」 的引數必須有類別或列舉類型
/usr/include/qt4/QtCore/qpair.h:96:41: 錯誤: 「QPair」 沒有命名一個類型
/usr/include/qt4/QtCore/qpair.h:96:41: 錯誤: ISO C++ 不允許宣告無類型的 「parameter」 [-fpermissive]
/usr/include/qt4/QtCore/qpair.h:96:46: 錯誤: expected 「,」 or 「...」 before 「<」 token
/usr/include/qt4/QtCore/qpair.h:96:83: 錯誤: 「bool operator>=(int)」 的引數必須有類別或列舉類型
/usr/include/qt4/QtCore/qpair.h:102:22: 錯誤: 「QPair」 沒有命名一個類型
/usr/include/qt4/QtCore/qpair.h:109:48: 錯誤: 「QPair」 has not been declared
/usr/include/qt4/QtCore/qpair.h:109:53: 錯誤: expected 「,」 or 「...」 before 「<」 token
/usr/include/qt4/QtCore/qpair.h: In function 「QDataStream& operator>>(QDataStream&, int)」:
/usr/include/qt4/QtCore/qpair.h:111:10: 錯誤: 「p」 在此作用欄位中尚未宣告
/usr/include/qt4/QtCore/qpair.h: At global scope:
/usr/include/qt4/QtCore/qpair.h:116:54: 錯誤: 「QPair」 沒有命名一個類型
/usr/include/qt4/QtCore/qpair.h:116:54: 錯誤: ISO C++ 不允許宣告無類型的 「parameter」 [-fpermissive]
/usr/include/qt4/QtCore/qpair.h:116:59: 錯誤: expected 「,」 or 「...」 before 「<」 token
/usr/include/qt4/QtCore/qpair.h: In function 「QDataStream& operator<<(QDataStream&, int)」:
/usr/include/qt4/QtCore/qpair.h:118:10: 錯誤: 「p」 在此作用欄位中尚未宣告
In file included from /usr/include/qt4/QtCore/qset.h:45:0,
                 from /usr/include/qt4/QtCore/qstatemachine.h:50,
                 from /usr/include/qt4/QtCore/QtCore:10,
                 from /usr/include/qt4/QtGui/QtGui:3,
                 from ../addressbook/adddialog.cpp:41:
/usr/include/qt4/QtCore/qhash.h: At global scope:
/usr/include/qt4/QtCore/qhash.h:105:61: 錯誤: 「QPair」 沒有命名一個類型
/usr/include/qt4/QtCore/qhash.h:105:61: 錯誤: ISO C++ 不允許宣告無類型的 「parameter」 [-fpermissive]
/usr/include/qt4/QtCore/qhash.h:105:66: 錯誤: expected 「,」 or 「...」 before 「<」 token
/usr/include/qt4/QtCore/qhash.h: In function 「uint qHash(int)」:
/usr/include/qt4/QtCore/qhash.h:107:21: 錯誤: 「key」 在此作用欄位中尚未宣告
In file included from /usr/include/qt4/QtCore/qtconcurrentresultstore.h:50:0,
                 from /usr/include/qt4/QtCore/qfutureinterface.h:52,
                 from /usr/include/qt4/QtCore/qfuture.h:49,
                 from /usr/include/qt4/QtCore/QtCore:11,
                 from /usr/include/qt4/QtGui/QtGui:3,
                 from ../addressbook/adddialog.cpp:41:
/usr/include/qt4/QtCore/qdebug.h: At global scope:
/usr/include/qt4/QtCore/qdebug.h:225:46: 錯誤: 「QPair」 沒有命名一個類型
/usr/include/qt4/QtCore/qdebug.h:225:46: 錯誤: ISO C++ 不允許宣告無類型的 「parameter」 [-fpermissive]
/usr/include/qt4/QtCore/qdebug.h:225:51: 錯誤: expected 「,」 or 「...」 before 「<」 token
/usr/include/qt4/QtCore/qdebug.h: In function 「QDebug operator<<(QDebug, int)」:
/usr/include/qt4/QtCore/qdebug.h:228:36: 錯誤: 「pair」 在此作用欄位中尚未宣告
/usr/include/qt4/QtCore/qdebug.h:228:36: 附註: suggested alternative:
/usr/include/c++/4.6/bits/stl_pair.h:87:12: 附註:   「std::pair」
make: Leaving directory `/home/hank/workspace-qt/examples/itemviews/addressbook-build-desktop'
make: *** [adddialog.o] Error 1
The process "/usr/bin/make" exited with code 2.
Error while building project addressbook (target: Desktop)
When executing build step 'Make'

回复

使用道具 举报

尚未签到

2015-6-5 13:09:57 显示全部楼层
本帖最后由 qtSOS 于 2015-6-5 13:17 编辑

大家好:
希望大家幫幫我
我發現連最基本的 Hello Qt 都沒辦法compile .
錯誤訊息都是一樣的

希望有人可以解救我
拜託!!
回复 支持 反对

使用道具 举报

累计签到:410 天
连续签到:1 天
2015-6-5 13:50:29 显示全部楼层
看不懂这个错误


你说最简单的demo都不行的话 ,是不是环境出问题了
回复 支持 反对

使用道具 举报

尚未签到

2015-6-5 13:57:45 显示全部楼层
因為原本都好好的
突然這樣,不知有無任何方向可以確認.
回复 支持 反对

使用道具 举报

尚未签到

2015-6-5 16:17:06 显示全部楼层
大家好
目前我算是暫時解決這個問題了.詳細原因我也不清楚,在此提供我處理方式.
利用手頭上 qt-everywhere-opensource-src-4.8.0.tar.gz
執行以下動作:
$tar tar xvfz qt-everywhere-opensource-src-4.8.0.tar.gz
$cd qt-everywhere-opensource-src-4.8.0
$./configure
$make  //非常久一小時有
$sudo make install

在原來的 qtcreator > Tools > Options
選擇左側 Qt4 add 新項目
qmake指定為剛剛compile  ~/qt-everywhere-opensource-src-4.8.0/bin/qmake
//----------------
完成以上動作後,在Projects裡把Build Settings>Edit build configuration:add剛剛新增的項目
重新 run qmake 後 rebuild 即可順利完成compile(要注意此時 QT_VERSION會改為0x040800,有可能需要作修改.)

以上 是這次我暫時解決的方式.

希望可以提供給有相同問題的人參考.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了