|
|
我对syslink进行交叉编译到arm,但是出现如下错误:9 q3 D" ?" ?/ F$ ^5 d
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'" z+ x& R; Z& N) j
L: D9 N3 j* S这个头文件内容如下:3 h$ i9 G, s& T' s6 C
#ifndef QTCONCURRENT_RUNBASE_H, n* ]6 v3 ?+ F: _3 ~( F( o
#define QTCONCURRENT_RUNBASE_H0 U1 b2 R& P* x
& y/ s7 I. q5 C( C a/ J) p6 t
#include <QtCore/qglobal.h>+ Q( Q" b; Q. F' e6 J
4 h& {8 H+ G# O6 ~# O#ifndef QT_NO_CONCURRENT
* o* ?6 [2 J7 ~# x; Y$ c5 `1 Q1 F4 W- H3 r4 p! M+ q* f2 B/ `
#include <QtCore/qfuture.h>
8 c3 a, ?3 _% Q/ ]% g, K2 R9 L) l#include <QtCore/qrunnable.h>
. {- `, W, ]7 m i# Q2 c#include <QtCore/qthreadpool.h>$ N4 \( L5 F6 K) }/ q% S1 w' S
- y9 V$ z) }4 ^6 B, Y- b5 Z1 D
QT_BEGIN_HEADER9 e) T4 h2 i5 D3 H2 e6 O+ X
QT_BEGIN_NAMESPACE, F# d4 l L5 P
; @& S7 a9 i% _3 @- h! }
QT_MODULE(Core)
, z! @& t( y5 X$ c3 l
+ d5 b. a6 ]6 w7 W: k8 h#ifndef qdoc
4 H- x3 r) H& q) p) Q, ~
) ^! v( R8 k& x* Znamespace QtConcurrent {
* |) U t4 t- B2 G9 V8 l7 s- M6 C4 F `5 f
template <typename T>- ]4 s* E3 Y5 D& O% J6 b/ m
struct SelectSpecialization
9 z. B1 O' P+ a4 _! @0 ^: z8 Q% [{$ k# G9 r/ O: ~
template <class Normal, class Void>: C5 ^5 q) |* D A# M
struct Type { typedef Normal type; };
6 R5 I2 v/ R9 L- ^5 U8 y};' w- C2 @. l8 @" O y( u* Y( G
4 @7 @( G/ }, S' Y2 R# s
template <>! j; E0 U$ A3 V; h, ~/ g0 P
struct SelectSpecialization<void>. S/ c9 ]$ K7 v. I$ C
{' Q6 S! j5 G9 R/ ^: P3 S
template <class Normal, class Void>
; U9 r. W5 m% Y0 V; g0 w! E! Q struct Type { typedef Void type; };
" h' m( i" ~5 a Z6 C' T/ t# {};
6 s) i- V- p1 D% N( z
8 z; }( E8 a. xtemplate <typename T>
' K% t$ \- a T6 U. q& nclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable y: t; ^, i2 Z% T( a
{
) g" X: a8 m* o3 B2 Q, Kpublic:6 X) _/ p! p) p3 _% @
QFuture<T> start()
) }# D' Q4 N( S6 P, l {
9 F% V! c l/ c" S7 |9 E& s9 u this->setRunnable(this);
5 d: f ]4 x9 C; U4 M# K this->reportStarted();
q/ \. I1 }/ |( Q+ M; X QFuture<T> future = this->future();, N/ b6 e6 J% T7 Q( ]
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);3 U& c; G s1 G/ ?+ S
return future;% H! @ M; s8 m p& B: b
}
/ s8 E8 S4 p$ I. o) C$ ?; v8 Q/ b% Y' j7 I' T# H
void run() {}
2 \3 a% Q) i# m3 _5 }6 ` virtual void runFunctor() = 0;1 ?: k+ {5 |( M M' ]4 j
};3 g( t. F! c9 z# S$ m
' _ S% d0 Q( z0 ]template <typename T> q7 _8 t# ~1 f( H0 O: n8 `' J
class RunFunctionTask : public RunFunctionTaskBase<T>
8 z9 z6 l6 {7 i- X: }4 d1 N2 @3 R{
1 O; U! Z5 L6 Gpublic:- u3 N% D, O) L) s
void run()
( k4 s4 q# C- r' j' b2 C {8 l6 K+ M; ^/ _ C. K
if (this->isCanceled()) {
) I6 B/ K' D2 J, p% B, \ \ this->reportFinished();
, V) o k7 |( N+ ~8 w return;# D% s s4 x7 J6 c: e# Z8 i
}
+ C# o" s5 F* W" k. j this->runFunctor();2 L' u) N$ Y, ^( i
this->reportResult(result);
0 Y4 L* B5 @' |( g; k# ?9 h8 ` this->reportFinished();
! p, v; Z: |( x/ { }# h# ]* C/ ~, \# \' T
T result;
: @+ p c7 i y& ^2 T};# F1 J3 m4 E3 }/ [, R1 u% m
1 K1 ^/ O" S' h* T+ Gtemplate <>. B! E, k+ m+ ~6 o1 d/ j# _
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
$ E; i7 V( j0 f' A- i! z{- z. z$ c, `/ ~
public:
$ A( p( V) l1 l6 ] void run(). q1 V: m1 r1 n, D" r. @2 S5 W
{
% _$ ~& i \3 b* I& D if (this->isCanceled()) {5 {0 ~) |4 y1 R4 X% _! ^7 B
this->reportFinished();
" m& w V* S3 y2 Y' X return;
+ q5 o5 e! ~% J8 w' b3 X; ]6 M }
( Z2 [6 P& G* M `7 p# P- k. w- g this->runFunctor();
1 Q6 I8 V& R+ f6 C% w this->reportFinished();" D4 V; s8 Q# h8 j# f
}
; m4 Z2 l D$ I; t+ Q- H};- j) i/ R6 |3 _
. R |9 U, z. M+ p, C; a2 @} //namespace QtConcurrent, w( A$ }2 ^6 O+ F7 O: ]* }1 s7 ?
) X9 y" W2 n* _& I4 b- ? Z#endif //qdoc
5 E( D8 w' h- ?1 r, Y! r4 n3 }
3 ~' k( z, S! nQT_END_NAMESPACE5 ^1 s3 u+ n& h& ~. e: ?
QT_END_HEADER9 L% w& y+ L: o* \: Z1 `4 L2 A
- I/ d% e8 Y8 T) [) |: Q
#endif // QT_NO_CONCURRENT
% t; v2 b3 t/ P$ M- P( m" C$ @( Z; \: C' H0 ~& V
#endif) O" q% B$ S8 a' M: R
, B$ y) j( J I) f0 K
|
|