|
|
我对syslink进行交叉编译到arm,但是出现如下错误: L/ w1 n. a4 i9 v0 r! G
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'$ \& S% N, u+ [
; S! o6 t9 @) l6 Q$ q4 d. Z6 c. R
这个头文件内容如下:
4 d( M1 f7 A- n& I! C3 R! X; \#ifndef QTCONCURRENT_RUNBASE_H5 P- {$ U7 y; B% Z6 ~6 N5 t, U
#define QTCONCURRENT_RUNBASE_H; t6 h0 z: g2 S3 Y# K2 u, }
( N/ N; d$ o6 R. A#include <QtCore/qglobal.h>) u ^! f/ X+ |
) D3 b+ m. v Q
#ifndef QT_NO_CONCURRENT
- U% n) C/ {) c" C4 f
% k: I. q1 d3 Y5 _9 X#include <QtCore/qfuture.h>
, s5 H5 k: J0 x# G0 S' X#include <QtCore/qrunnable.h>
/ Y: B) n1 s' O9 C8 Q/ s#include <QtCore/qthreadpool.h>
4 N! O8 ~' D/ J4 I! v7 V z F j/ q4 U
QT_BEGIN_HEADER
0 D" q6 j0 P! y0 Z4 N! y9 KQT_BEGIN_NAMESPACE
' T7 x% m( a0 O6 V1 H7 N9 u( P
" E' N; |0 X4 uQT_MODULE(Core), i' r9 o1 ?$ _
1 \7 K2 s; O. j0 U) s) l' E( t
#ifndef qdoc
- D3 E* P: e2 i2 ^% u5 W7 _# ]3 `: n" Q; A) r
namespace QtConcurrent {
3 \* l# |- W& ~ d, h- t3 \% w
1 l: r$ [" i: ~; I, z d) Etemplate <typename T>7 I4 u( |9 _* ]2 Y$ @7 Z
struct SelectSpecialization' {" L' ~9 V# J( o! ^9 S
{
& s. Z3 _2 @2 ?9 ^( D* ~/ L& L template <class Normal, class Void>! j/ F& K$ e. s: @& L( R8 T
struct Type { typedef Normal type; };
4 I: V2 h. ? s. c};, S/ s$ P( |2 ?! `% g+ g
+ o, z& v' z( a7 ]4 ntemplate <>
3 E: e. v- L( V- Y" k& Hstruct SelectSpecialization<void>1 m5 T, B* h; g6 N* E
{
4 ^) F% Z3 J: ` template <class Normal, class Void>
3 P8 V) c0 n0 W struct Type { typedef Void type; };
3 c$ p# _3 [* _9 `' L- I/ H};
: G) Y0 X% u: j& a& R2 A6 N) y5 f( R4 Y0 a, l: ?
template <typename T>
/ p3 i5 ^& P) M8 y: I7 L$ d; q; dclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable" J& O u% i7 r
{' j6 D5 `+ {. u" w3 H& h/ p
public:
9 _- g1 s% ^3 T/ D* S* J/ J QFuture<T> start()* z& A, d9 Y: Y4 j3 c
{
9 o' b; n# g0 y this->setRunnable(this);2 Z3 B6 A1 A7 u1 }& p7 e) v7 ?
this->reportStarted();
3 {) Z" V! a: a9 ?$ A7 o- d$ | QFuture<T> future = this->future();
0 D6 Z3 l4 [0 j6 [/ z QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
; d( c: F$ ]! \' ~2 i return future;/ D9 H# N+ }4 L J/ ]
}# y. y5 i! v# k; i/ ?$ W
1 R+ i6 A% `) D1 a# }6 D void run() {}& P1 E: h) N: n% l: q( Y: M
virtual void runFunctor() = 0;) X+ _' G( \+ i7 b: M7 L3 _
};; ]* t0 ] t2 @- A
' k8 b9 C6 g/ c$ n: h$ N2 j; d( T
template <typename T>
& v$ F1 l+ t. u: Iclass RunFunctionTask : public RunFunctionTaskBase<T>
$ R# R) I% a6 Q J' Y Y{
' F: t. u2 V) p4 g6 J; Opublic:" S( y2 _, M, Y/ u+ }* P! i
void run(): P8 W$ x2 P- o! _6 O* E
{
N" m1 M8 e# H- H! v i4 ~+ ~ if (this->isCanceled()) {7 R$ c, N" [1 C( l+ y
this->reportFinished();8 S9 a7 p, g' P* s2 `1 \
return;
- t* c3 o$ X7 v }; I5 {2 F* }' ~: U
this->runFunctor();
' j$ D% M1 ^ y _0 }3 n, W this->reportResult(result);
# J8 E8 ?& u% [& o this->reportFinished();
- y* w5 q2 z: Q7 \0 R# q7 p e }
( b8 J f4 g+ k C3 d T result;
/ m4 N- c- }& u) h5 _# ?};
1 d8 o) |4 `' x
' [/ x9 D! | A. d% Wtemplate <>
# o! h$ f- C/ `+ A. qclass RunFunctionTask<void> : public RunFunctionTaskBase<void>8 W( a; e$ M5 n( o3 x
{
; Y* T/ ?( T$ {public:: t3 j8 B; S8 ~& b8 b) F2 a
void run()
5 K* X1 Q$ [; Z$ } {
2 l$ |& J1 b; G O* u if (this->isCanceled()) {: L+ J3 P2 |( J8 X; a/ s
this->reportFinished();
/ n; m; f ~$ b& h* ? return;
# ]2 Q" x7 x: \; S0 q$ Q+ c6 T }3 d; A4 [; ?2 o
this->runFunctor();: L' d1 j. q' Y- M5 B3 F2 \
this->reportFinished();, a) h) x( d5 ?2 Q$ s# t
}
. A# e& J+ D6 [0 w6 u, T};
& E0 K; L6 L" _( P. q# S& @2 g5 R& H m3 T4 |5 l8 [
} //namespace QtConcurrent, R" j* D' |, K7 P& G; _
% E+ C7 z$ C& R, c
#endif //qdoc9 X, Q9 x! I, x/ P; I& B% |
0 G# z3 Q0 G; y/ ~6 lQT_END_NAMESPACE
- h; j+ u. H2 ~: C! PQT_END_HEADER
; }6 c2 p8 b7 M4 h( _( @! ~7 u1 s! C0 r
#endif // QT_NO_CONCURRENT/ V' L4 ?+ z4 k6 m3 ?
. F8 l6 m& ~4 ^$ o7 r z, ~/ b#endif
' y' m0 t/ X; v9 q; J
, Z1 r1 \( U7 i3 [0 h: C1 `% b |
|