|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
# {" T, x# y: v. O; H) ~! v/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
+ _: J; p! ? v8 b2 _ F: U( B
" ?+ X# E. |7 `3 `2 l* E这个头文件内容如下:
2 ~0 D# ^! H6 H# l3 g ?- r3 r4 `#ifndef QTCONCURRENT_RUNBASE_H
& f y0 ~6 o# m5 P# N#define QTCONCURRENT_RUNBASE_H* i+ W( ]6 m- Z) H
# b2 B5 i" ?; z7 w0 |+ [0 @
#include <QtCore/qglobal.h>7 E* D- t @/ T
2 ?- y: W; j* X0 X P1 t2 w! n% y; `, h#ifndef QT_NO_CONCURRENT
9 d$ ]8 V- [8 ^5 e
2 k2 f- w+ s: m: ^- e#include <QtCore/qfuture.h>2 P1 k! p% T* V# K7 |! W
#include <QtCore/qrunnable.h>9 |0 s5 c) ~, n9 w
#include <QtCore/qthreadpool.h>
8 j& A: I' R8 B5 ]9 N, |
' x3 |* w& [' ~! {4 R& MQT_BEGIN_HEADER
5 B8 h* k( N% n2 k+ G% FQT_BEGIN_NAMESPACE/ c) g. n! p" `$ H9 ^# m0 @
x3 D9 o' T) B2 j/ U; z8 r( ]/ GQT_MODULE(Core)
6 a3 P0 e) b+ P' m
# {8 ~8 H2 m% _& A9 D#ifndef qdoc
( l: D- v" R: u& x' M) l
- U3 `& k- N. m' N+ ?namespace QtConcurrent {0 X6 E9 `" R- c' d! h
- u& }+ V# ^9 m/ f. m7 Itemplate <typename T>
+ }& Y* P. A7 | m( P" Estruct SelectSpecialization
9 Z0 Z+ G9 i9 O0 I# G) D4 }{
. o7 H' X4 s/ j5 i5 } template <class Normal, class Void>
7 Y/ A6 E2 o' }! I struct Type { typedef Normal type; };# M1 o" z3 |- e8 k
};. j! ]+ t( m$ D+ R6 k: \
3 q$ Y& l0 q4 k$ o" }/ ztemplate <>! K3 {8 u3 @3 b( V
struct SelectSpecialization<void>
# U5 ?+ j* g1 w{
+ N# @3 H/ r Z; ] template <class Normal, class Void>
, Z% `) @% V; e: z! u7 ^( s' b. [ struct Type { typedef Void type; };
. v$ d7 w. h# Q4 c( d};
! V5 j1 Q l& }( `% q& a" ~
+ m/ R, c. _5 W5 Q. X2 o7 ltemplate <typename T>
/ X# ]' L3 n( `0 `class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable! k0 \1 S5 Q/ L4 i: R
{
2 [3 `, m2 D4 I4 j% U9 Vpublic:. n' i; Q: {4 I* `4 h" L
QFuture<T> start()
8 F5 ~. ^- E6 p1 ]$ h {# K L* S* o6 |
this->setRunnable(this); l4 R% r4 p# g" z
this->reportStarted();
$ e& C6 v0 e/ E% P7 { QFuture<T> future = this->future();: \0 F t! G/ ]' |* c" p
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);) k. |% j0 L3 e- ~1 l/ C
return future;
5 O$ M' ^7 X* p }9 A2 R) K. {5 S1 Y( u3 o
9 f, L2 j6 d" ~" [: O* v void run() {}
4 W. E* N+ w% f) y4 y6 g virtual void runFunctor() = 0;
! B2 X2 }( k" i0 d};7 \$ G; b$ k# }0 n; W
: i5 {2 s2 w0 ^2 btemplate <typename T>
! g- U A) c& Q/ _7 ~( y6 R$ zclass RunFunctionTask : public RunFunctionTaskBase<T>6 a# y2 Q! H5 C" e1 s
{
& g! d" z2 T3 f* n% E1 Q' M: Mpublic:
7 H& {2 }/ @& t( E1 J- V void run()
$ _' M% c' m7 {& J {- E6 v% c( P5 |
if (this->isCanceled()) {) Y; b5 A) h% b: G$ Y
this->reportFinished();
, @. ^! T7 s! b' f% ^, t return;
9 L" v+ v4 @: ]- ]1 I }
- o' t3 U; Q8 B4 h this->runFunctor();7 P. x8 D' ]1 ]; B* G' I& X5 a
this->reportResult(result);
. o3 I% @3 d" ~ this->reportFinished();& o1 m6 w0 W& {3 O
}
\1 K8 v m& ^9 m T result;
$ I# c. V) E. v};) |/ s3 K* X+ I4 J
$ v1 k9 u; ^1 k' ntemplate <>% \6 F3 r \1 K( b
class RunFunctionTask<void> : public RunFunctionTaskBase<void>! c, P$ H5 K+ I9 {
{
/ ?1 U3 E& H ]# k! m+ opublic:$ P1 w9 Z; P( F) K
void run()" x4 z- R' g, D% `8 x
{
8 u( l3 c7 N$ V; A/ C if (this->isCanceled()) {
. y' @3 ?! X8 ]' B this->reportFinished();
( z8 X% v, q! t F- N return;! B! H- [4 B9 H" R- `) ^$ C
}" B; ^7 E4 J+ `3 A' l/ t0 K/ F
this->runFunctor();
p1 N0 L; m" U8 a) j8 _* n this->reportFinished();
" S9 ?* x# v( _+ R. i! S: X' w }; N8 L; |# W8 v. U" e4 D
};8 Z7 N/ k. n2 J. `. J. f
- B- w' t% y+ w! ]! k9 I} //namespace QtConcurrent# F, s: j( U% H( U
- n% B1 L7 Q2 A1 R: r' ]# f3 J) }, E
#endif //qdoc# T2 @7 p. f1 S. V
) W+ ]: o6 N5 N4 l4 {& H8 U9 OQT_END_NAMESPACE, c9 j/ H" {" F/ `5 P4 ^( e
QT_END_HEADER
4 F) E, r9 a7 L8 @6 g. k' Z6 A
% I7 f; o9 C! A) f5 ?- i#endif // QT_NO_CONCURRENT: P5 A* i+ j; X# |) B+ U
+ [) ~2 q* d: A* n0 F# Q u
#endif
9 X' u0 [1 F" {, ?; B |
[! v2 X. ^/ }: X1 B4 \% F |
|