|
|
我对syslink进行交叉编译到arm,但是出现如下错误:/ j4 o, @. t7 V3 ?5 |* f/ V. R
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'5 J8 v8 R! ~. t9 I/ s& ?
$ B$ _* r1 ?' g' S这个头文件内容如下:
$ U, n2 u4 J, Z& T+ L#ifndef QTCONCURRENT_RUNBASE_H. V M1 S' H+ q! Y, ~, K
#define QTCONCURRENT_RUNBASE_H
0 M6 x% K! v! t: d' o: q9 V. ^
#include <QtCore/qglobal.h>
7 Q. B# v: O, D6 Y# C* o+ ^8 V! x* b( ~- g
#ifndef QT_NO_CONCURRENT
! K9 J6 M) s! [, @% {5 `. x3 e3 ~1 ^ b
#include <QtCore/qfuture.h>" B& y. r1 O+ n- G2 M/ p2 ^1 B
#include <QtCore/qrunnable.h>! W( J4 [6 f1 ]1 n" i/ b# O. F
#include <QtCore/qthreadpool.h>
" y$ w" V# B" [- r" [% S/ |
! s/ p; L8 A& KQT_BEGIN_HEADER0 k N: M/ \+ F# v# y: l
QT_BEGIN_NAMESPACE. u3 i! r) @* ]3 H" T( n j
% E& o& b5 T* k; S5 A# e" uQT_MODULE(Core)
5 ]! u8 l8 j+ L- {
1 j+ y4 q) w$ _1 g6 ~#ifndef qdoc
8 ^! E! U" z) }1 J
7 u( E1 T7 g9 I' I/ d$ Nnamespace QtConcurrent {# i& n0 g( V/ }- j
% M- U7 i% Y3 Y4 W1 i
template <typename T>
$ H$ I& |9 E9 u; Wstruct SelectSpecialization
% i/ ~, ?/ Q" I{
% x9 R9 {: G: D3 e: P4 E template <class Normal, class Void>. B8 O8 z% J; z! X9 O
struct Type { typedef Normal type; };
E- B* V7 [1 G$ n; U; F5 Q};
$ R9 U; X1 T% ~9 m: B& R0 Q0 v5 H! p
template <>+ r: x+ {. ~3 A! x7 X1 k$ X
struct SelectSpecialization<void>. O" _2 H6 W- l# `0 e
{2 d; i7 \. F: m' N' a
template <class Normal, class Void>
& X8 [% ]1 ~ Z6 L# \% ] struct Type { typedef Void type; };
6 A1 c$ W4 L$ g, t3 D9 s) M! M};
' `$ Z: r: U9 f
# ?* a9 ]6 ]4 U# b' ~' Vtemplate <typename T>: y( w+ B% h' F& _' H. D# b0 X
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable+ Y8 |, G9 j9 v2 P+ W
{) ^, }" F6 U6 B. ^* F
public:' `- R+ f- A+ y2 p( m
QFuture<T> start()' i8 v% a$ @$ v. s0 O, ~, k
{
! R! M& I) Y+ @* T this->setRunnable(this);; d* Q8 _! {9 ^; v( L* q
this->reportStarted();( {6 [' Y1 J) [) N
QFuture<T> future = this->future();
, r9 f9 b. w- r, Q: N QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);& Z+ h* J* f- K6 h/ F! ]7 |! ^) L9 M% I6 |
return future;" t( g4 m0 N& m3 ?, B- k o/ @
}! E) L+ W$ h' H3 T: j7 V, l
0 P- a, B) M/ K& E. B5 A, |
void run() {}
$ a# n" E6 Z' T% T8 K virtual void runFunctor() = 0;5 D! r& c1 l7 |5 [! `9 F
};
# N: \0 f$ [5 I& e+ E4 t" }% L1 S$ e& p$ s5 F( E* e
template <typename T>2 j- n6 H# ?, ?2 s& Y) A
class RunFunctionTask : public RunFunctionTaskBase<T>) V* m! p, b% }$ g. D* |( a: }
{
" t# n7 c* B0 W* r" n. |0 G. Zpublic:% _6 W# D, m: R( X8 {% o$ w5 c
void run()
, J( T$ L6 b3 D {
. X! U7 o4 Z7 O) f if (this->isCanceled()) {% `# e& f% L( R: q3 n
this->reportFinished();
0 @( M- v5 t. T6 a- D1 X& W return;
3 K( w, `4 a( D- b; V; v }
0 l7 J/ h* [7 B8 k# B# l this->runFunctor();
. p' d; r7 j1 O this->reportResult(result);
1 Q6 K3 @0 ` u this->reportFinished();
9 e' x+ _- d: A! k }+ s) \. S2 B4 `, L y
T result;
1 s" B% B! q# @, N};
" Y5 W: D7 {/ ]( M' l( T. ?! m9 A9 ]! h) v$ a; S
template <>. Y1 s+ E, _4 G9 V4 R. P0 e
class RunFunctionTask<void> : public RunFunctionTaskBase<void>0 ]) q! f% }% X/ ?7 B" x! q& W
{
: O% h/ b* @# ]0 N8 f) O6 qpublic:
0 Y/ A' U \- ]$ V( W void run()+ b7 m5 N( Y+ C6 N9 Q9 H/ f
{8 B! Q" O! J; Q. x& H4 D
if (this->isCanceled()) {
3 T' _. h3 J/ \0 ?. W this->reportFinished();/ W/ T& l2 H z, v7 s
return;# S( O. x4 J1 n' B5 n' v* t" v& T6 P
}
. H8 Q; ^4 o4 K j9 L0 F1 j this->runFunctor();+ P4 s) {, u5 y- s
this->reportFinished();8 a+ V3 U2 Q, j3 }* ^3 ?& z0 |/ v
}
% v5 B+ P8 T2 {};
C7 ^9 H4 R! d) o% L- }' U
1 a' x( k! Z- ?- G} //namespace QtConcurrent. N" a8 m/ j+ B7 a; _2 w
7 c/ F# P& U8 R# A#endif //qdoc
( g6 K) ` F1 o! |. N( x- x8 L" Z0 k; f) W- F9 S2 I" P% O
QT_END_NAMESPACE0 g$ m( M% J% \- Y# `! w" f
QT_END_HEADER
6 S$ N7 g+ Q) U. Z' I
0 E: O3 H- k& V8 a#endif // QT_NO_CONCURRENT
8 q* [) {/ T1 Q8 z
4 T. ~! @- E. T8 P#endif5 x, d6 b% _% J7 A
Z7 F5 W1 D6 v j! F/ R- Z |
|