|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
: [7 Q6 V$ G* R5 P* R) f/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
: ` ]+ R. `4 B7 s+ `4 n, F/ ^ I! c1 }) ~: p+ S: `7 \! V
这个头文件内容如下:4 [( J! o* d9 K. ~# P# b2 ^
#ifndef QTCONCURRENT_RUNBASE_H
* N# P) c2 g! y9 H+ q& y9 o#define QTCONCURRENT_RUNBASE_H
# Y: g5 c! P; [5 n& @# z0 T) g; V1 R3 [' S8 G* s
#include <QtCore/qglobal.h>1 w" R I! v9 O
4 o0 N7 D: z4 t5 Z1 O#ifndef QT_NO_CONCURRENT
3 }3 e& Z. g3 ?( e9 N& A1 n7 ?& L) p5 B2 S% _- T4 Q4 K
#include <QtCore/qfuture.h>
- C. f4 T2 y/ b0 D1 s w% v }#include <QtCore/qrunnable.h>/ R8 Y Q3 l% H. u$ `- J
#include <QtCore/qthreadpool.h>. s/ C6 n4 F# u2 L" v
+ h0 M w7 n) b0 |QT_BEGIN_HEADER
/ ~7 ~" `# _9 x6 TQT_BEGIN_NAMESPACE
- c' M% U# M8 _2 a& V! {# @. Y
A0 {" `% G5 V; XQT_MODULE(Core)
- }& p& `" {; y6 R5 q/ n$ h; Q( F/ N4 V$ ~7 w
#ifndef qdoc
7 R% J" n, r1 a6 t- a+ F4 y$ {) x
- P( a# L3 p/ C1 J9 i% Hnamespace QtConcurrent {
* q2 M7 s% C6 {) Z! @ j& g0 |
# |- u: z0 d1 Y2 z( A! j) G" E$ r: ltemplate <typename T>
d! R3 ~8 I$ J0 t+ K& sstruct SelectSpecialization. u0 ^% e/ N; e$ K4 r* d+ p
{
) u8 v) `& E. u1 m% F template <class Normal, class Void>
0 t; | w' J$ ]- H6 [5 h. ` struct Type { typedef Normal type; };
0 W/ U7 j7 J; J! l+ |};
2 q) y; s' {2 t$ ^ i
1 T$ j( o9 a( K, m% Wtemplate <>
2 S, {+ q* `7 E. p2 {struct SelectSpecialization<void>
8 b2 d: f! R8 r3 Q+ G2 n) s* f{9 B9 }) s8 G6 k0 w0 ^( c( ]7 ^
template <class Normal, class Void>3 L: J0 L- E' q# a% K2 y
struct Type { typedef Void type; };0 y* Q, s1 c( v( j; D5 R2 {
};
7 {! z* B; R/ l$ x8 B
- s0 l' j. r! i% J. I2 \template <typename T>4 |* K0 m6 Z/ |0 Z$ u( o
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable; }: j7 [* ?$ S: R; F. a
{- k5 ~, f7 ]7 J8 g( J |2 d$ Y& _
public:
# K& n. ?6 S* Z9 n QFuture<T> start()$ J1 ]; M$ F6 G8 H
{
) q8 z: ]3 b v& p( N$ K this->setRunnable(this);! V; Q: k( j I
this->reportStarted();2 _/ q+ N# C. Z0 r) v* ]# h
QFuture<T> future = this->future();* j0 v' l6 [, H: X
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
" K$ F% ?# d5 _; W6 A/ I; N return future;+ g0 z6 L2 U6 Z7 ^5 |
}& ?- G) J" L$ R4 O/ c
4 F! s% o8 E; V3 q! [" M$ { void run() {}( [! r( i; l, d0 ~
virtual void runFunctor() = 0;: Y; K9 c _+ w
}; A' j' v3 L# _. B1 z
0 Z. p; F4 G0 r* N- \, Jtemplate <typename T># |$ ~' X& O% p4 q$ u+ E8 O p
class RunFunctionTask : public RunFunctionTaskBase<T># `' C1 } H. q7 p5 e. A- U
{7 E& u; F# U( L3 K( ?
public:
4 A9 M& u; O6 Z. q- ` void run()
+ |' n2 u- a0 F; w; I {0 i0 P& ]1 q# G3 ^8 d% o n
if (this->isCanceled()) {( A+ ]' t j6 c' o2 N k4 `
this->reportFinished();
{# ]8 d0 _) r+ w7 z/ n O6 q# H return;
. L+ z+ Y5 A& ^! H }
3 {8 w( V+ Z' P( ~4 ^: A& h this->runFunctor();
/ r+ ~1 U6 M, Y- u this->reportResult(result);) y* X& U1 M$ ~
this->reportFinished();
8 T& S7 G( }9 z }5 S6 N! y1 ~7 {' V& D# J
T result;+ L* L7 [. @# b1 G( s. c& F# z1 m( d/ V
};: ?5 H0 C% H. A) N8 ~0 k
4 i' P9 D* Q& i; I7 S
template <>: _7 j) b: Q3 V* l$ ?: ?
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
0 H ?' j+ B. U0 H+ E{0 t: x- X$ M6 f, Z1 {9 T) j
public:5 U. k. n1 u3 |+ m6 s z) @1 ?
void run()3 e/ J0 N8 F+ G
{; L* a4 S0 [ Y$ I+ F$ j* t
if (this->isCanceled()) {
! \4 G$ B3 a4 x0 I! c1 {( p8 F this->reportFinished();
/ R' P9 J& S, M return; w/ u Y& L* b
}
8 z" X: Q7 r n0 e this->runFunctor();
0 q4 j% L5 g$ E+ m this->reportFinished();
" B# ^0 e; N8 h2 f: U2 Z7 ^ ^ }: ]" u% c& C" ~) a+ j; f
};
) X# } D4 T* Z! ^; Q) \6 h5 {& A: o$ W% f& O& L4 B; I: x
} //namespace QtConcurrent
$ p, T- |4 g( P2 z( @6 Q$ H
- U6 c- z9 X$ a _+ y% w2 K3 M#endif //qdoc6 J6 g+ h* F/ b6 ?0 F6 [
8 u" q) \$ g( I/ p/ L, m
QT_END_NAMESPACE
) {% @0 E6 {2 ` o5 {2 E2 tQT_END_HEADER: P% d3 ]8 }. e3 ]% V
9 u _, ?5 _' ~. C! e
#endif // QT_NO_CONCURRENT
0 E( S4 z. L+ b& C) z
, Z1 T2 D+ D( \6 B# W#endif
4 }! E( | S, z7 _8 `% N" O. \2 ]
7 r( i+ f/ h& D+ o( n# P1 | |
|