|
|
我对syslink进行交叉编译到arm,但是出现如下错误:4 O! a% v# {5 D; p. |9 [- r5 \/ ?, e
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
1 G) x! J" W P0 y% S2 z) p, n$ z( K( g2 h. c
这个头文件内容如下:
# A9 G( v/ K0 ^0 o- z1 |#ifndef QTCONCURRENT_RUNBASE_H
# Z) T. b+ d) Q' r8 O5 r#define QTCONCURRENT_RUNBASE_H( w* m+ Y4 ?0 y- z
, b% l, ?; L6 {#include <QtCore/qglobal.h># h. ]: r8 W7 D: U. d
. z5 b! a, Q% l3 P
#ifndef QT_NO_CONCURRENT
) }6 D" y* |+ S: q6 n
7 k+ Q3 y, g' l#include <QtCore/qfuture.h> ~$ L& B' H& ?
#include <QtCore/qrunnable.h>
% f% w* R1 o( v" P5 `! Y! k#include <QtCore/qthreadpool.h>
3 y! H4 k: v; D- m& |% ?2 s( `7 o# ]$ @8 R: w8 \4 e$ O1 [5 b
QT_BEGIN_HEADER
: ^# _ ]# k6 c- R' qQT_BEGIN_NAMESPACE
: g: W( `" M/ E' h2 _/ {( m5 D! Z4 p) S; o! m' g6 p- ~
QT_MODULE(Core)0 o/ s' v6 Y6 ^$ w3 j; p
% @# e9 X0 ~+ u R2 R, q# V
#ifndef qdoc
' P, W, E1 G9 v
# b/ f$ F: Z$ h1 v0 j* U* onamespace QtConcurrent {
& B9 ~6 l6 D; l! g) v
) h, B3 M( H' ktemplate <typename T>
& K1 ?! n `! I, z( Z$ Z* zstruct SelectSpecialization
/ Z1 u/ E4 |1 g8 Q" e% s1 F) S$ r{) ^; Q# k! l( j
template <class Normal, class Void>3 l0 I# W7 z1 }4 e" V; y( x2 t
struct Type { typedef Normal type; };
) W1 g6 u" u! W};
" b- N2 z" ]7 n" R2 n7 m. k. B
% ?2 ?# h: [1 k0 u0 ~$ |6 K2 Atemplate <>
0 A- y6 t* ^* X# ]: C, J: astruct SelectSpecialization<void>* r# v- a; V" p/ J- h8 A9 M2 ]
{
* B$ \; |" K! Y9 d+ H template <class Normal, class Void>/ U- F! |3 @& i6 }7 P
struct Type { typedef Void type; };. y! s8 _) `: O8 \
};, k0 }6 k- r3 s4 O
% A) O B5 v; a$ U8 Y R
template <typename T>
1 z! a6 b, N2 ]: Yclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
) ~, I3 j8 s' V, w7 V* b{. q+ j! \8 Y8 T1 w
public:3 Y( H) P- i8 ?6 P5 V
QFuture<T> start() x" j% j* ^2 }' X6 J
{! k% x* T" y1 {2 J5 E
this->setRunnable(this);/ _) `' n- }3 H8 m2 E) E
this->reportStarted();
' C7 F" ]! N8 t1 n" _0 O QFuture<T> future = this->future();$ I! \! n. Z8 a0 l& p
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
d6 x; Q, q7 p; R# L- W3 s return future;
: u8 k/ B8 {/ e) O1 W/ P4 s- _$ R }% _) ?" r0 q( f6 q: q$ D
- M9 s, \$ z. B7 G1 g
void run() {}8 {" v( t1 }: c( l @% @- [0 v8 Y
virtual void runFunctor() = 0;/ e8 H1 C- F' \/ `4 U
};' E Y" m: `9 |
4 H# f, l- B5 g2 j
template <typename T>
+ Z: l$ F/ d+ L: mclass RunFunctionTask : public RunFunctionTaskBase<T>
( e7 { g1 V0 O+ ?{
, v( J# T3 ~% n3 U9 jpublic:
/ l% p6 c1 x4 L1 U3 S/ x void run()) l- d. b% j, l6 _
{- c- F# c! q9 Y) J4 p9 _+ F
if (this->isCanceled()) {
' w; X k9 J0 n7 H& e2 M# q9 P this->reportFinished();
3 s. B0 m* K2 ^2 H; x P) A return;2 O# h7 n: ~9 x+ V: p& Y
}
: b! F1 |5 }- W9 \9 z3 k this->runFunctor();) M' h. Q2 c# x4 M
this->reportResult(result);/ L; Q. ?& v, f8 W
this->reportFinished();
. z1 @! B1 y% c" y* {# _ }% E3 O# k% [0 V' U) T
T result; P* d' ?/ j+ {, M4 R7 y( @
};8 o- v3 X; v: ?1 A* O
4 P/ Q- N. s, v1 y' ^/ K
template <>
) O0 p, W* j$ Q0 s* Kclass RunFunctionTask<void> : public RunFunctionTaskBase<void>- h7 n, ]) V( @
{
( i. F5 R) |" U# qpublic:
2 B+ \! _0 h0 w# s void run()
q" A& a2 N" v7 i7 M5 ?; M* r {
4 L. g9 A$ s: p M9 G if (this->isCanceled()) { m' S" v1 X" [+ Q" o& K( G
this->reportFinished(); [7 I) A c( O6 x# q& j" i
return;2 b. A: V! z7 x' l. x
}
0 ~" i6 ]" ~( y9 } this->runFunctor();
9 r- a5 n; f" R2 X% d8 O1 K' w7 C! Y; z this->reportFinished(); W1 |- j; V9 |; o$ @
}5 }1 l% P/ Y0 Y9 {$ t8 }* ]
};
# i- t2 E M+ Q9 n7 H
3 t6 x! q C# o2 }0 |} //namespace QtConcurrent1 I, ~" |4 R) \3 {3 a3 ]
/ q4 w/ Z3 n, f3 D( s; p#endif //qdoc
x; i$ ^; B' n% {
2 ]% H+ t' _5 j# U7 |* dQT_END_NAMESPACE; t- S% }8 d! n h, f& H+ A6 R8 ^
QT_END_HEADER% I6 w5 x; T) F4 w
, E: @4 E. H; }! | h4 H# F- H
#endif // QT_NO_CONCURRENT' i) V( q+ N; l/ r$ C0 c
/ z6 j" P( r+ k: N2 w' p! v, n#endif1 F2 G& P) \4 |( T4 d
6 S V o( X# t |
|