|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
8 T1 e* y% l' w! x1 b& r% T4 o/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
& a4 M0 _6 P5 H) q( v8 ~! s; Q5 _! l' Q2 h/ x8 u+ m) z
这个头文件内容如下:; q5 m7 }+ g( m/ E, m
#ifndef QTCONCURRENT_RUNBASE_H. t/ E- h# k* A! Q7 X
#define QTCONCURRENT_RUNBASE_H
A! }' B/ A3 G' m3 I' `" H6 ~* d/ ^) r
#include <QtCore/qglobal.h>* v- N. P3 i' K
/ K; G* F7 e( x R& o$ H
#ifndef QT_NO_CONCURRENT
& D* I3 n) @2 [, ~5 W9 @* o# y9 w. Q3 \; S8 E6 L
#include <QtCore/qfuture.h>" U, r8 v4 d0 P! F% P- p* p
#include <QtCore/qrunnable.h>
# f, x% y8 V# K( N/ {$ v#include <QtCore/qthreadpool.h>
" L; x5 v9 }( K5 F5 W. F! B3 } M" q' r1 e4 w- p( k
QT_BEGIN_HEADER- s. k6 q( H2 T7 {' {
QT_BEGIN_NAMESPACE3 h$ c D2 j' V) u U2 ?( @
f; U" S' p, NQT_MODULE(Core)9 C l# A+ P# W9 R# w! X
1 D9 ?7 Y/ x$ R% v& z" p#ifndef qdoc
6 T7 x- f3 x! y: s8 U3 b" `/ w* N1 N- B6 k3 b& q/ Q5 S ~, Y/ W
namespace QtConcurrent {
D, V {3 m$ i, s8 ]1 ?! d% }8 o! J7 s, D8 A
template <typename T>
; J) K5 Q9 n2 e3 U: ?" W) zstruct SelectSpecialization
5 s5 @3 ]( C8 h2 q% f; D{: G. g l0 ~$ T( ]2 G
template <class Normal, class Void>
' ]% G2 q0 w F' O* L! C# ^ c struct Type { typedef Normal type; };/ z$ ^4 o) ?% [& X# s! o
};8 y2 H6 U. q; n) X
+ {4 f+ T/ b& J. r6 Mtemplate <>
9 R2 u# {! e& a6 d4 ~& lstruct SelectSpecialization<void>
0 \- c8 x% H7 e- j{
H4 W6 R9 i" x3 | template <class Normal, class Void>% T; V8 L: F) P% b8 P
struct Type { typedef Void type; };
5 ^0 t0 \( r# a};# Q$ `7 e( N1 l# w* S& v2 a; g( ^
, l6 r( ]# g0 ^ Ztemplate <typename T>
r; M1 ~) C# P- x. hclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
8 J# q) g' g P" F( X; ?% B{
* B6 W4 ~' E1 L$ r ~public:; }( N: J3 [5 ^) I' p
QFuture<T> start()
5 f- o/ Y! }) l* e6 k; c. K* m. W {! N# f W3 i/ O9 i3 N3 m4 t% `
this->setRunnable(this);& K4 {& [3 g' Q# J8 J/ i
this->reportStarted();. D n! r% V; i7 E+ ^& W U
QFuture<T> future = this->future();
% {( A, B. ~6 X9 z QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);# D8 n& a O' e4 P! t
return future;
8 T2 N2 Z$ t( I: p) C$ G5 ~/ t3 Z }
8 C+ _: n7 ], M' @: m I9 G
% h/ m. _6 K: z: p1 Z) _ void run() {}
% k( M% K* ?: r virtual void runFunctor() = 0; D% c2 R* |. }! f z8 o5 K
};2 `$ D( P! s$ N$ \# [8 L: p
2 }7 `" X. T0 Z& C' `; @' E9 ltemplate <typename T>- ?& L/ g- e. t& w, l
class RunFunctionTask : public RunFunctionTaskBase<T>5 Y. b E% P& k$ X
{ N% V- w# E3 [# `7 p8 N
public:
# l! m& a' Y$ _ void run()
* |! _( O6 T0 Z& Y: g) R {
, i- }$ l( w4 B6 G5 S if (this->isCanceled()) {, C0 H3 H, P: g6 @/ n; w+ S* j
this->reportFinished();
) W8 ^' H `6 Y' p, J return;
8 v. K* `) q; D9 T3 k; ^ }+ A# Z: j% C: o: R& v
this->runFunctor();9 T+ `: m# L1 J" @. [. h# |
this->reportResult(result);9 [2 j* y; w# l2 B0 G% h
this->reportFinished();
4 G0 e& Z( I {4 s, s }* W! G) _) U. I2 o% J
T result;
, ?: ?6 i h1 P3 P R' _- o};
b& c$ x3 u0 q5 S8 Z! T
/ {" z& t. S6 a+ }template <>
$ k U3 c! D1 yclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
+ U/ ^( q% W' g+ ~+ V7 @{
8 r& v$ z9 C" ]3 Npublic:
V" v$ N5 Q$ _6 M! ` void run()
; E- ?" y3 m4 T4 R. C& ~ { |" E9 B( B+ d1 G* l8 l
if (this->isCanceled()) {6 W8 ]+ k5 V4 |) D9 n
this->reportFinished();: s3 w8 u0 g$ T: x" p- ^
return;" J2 O U' I% c, v
}, J* l$ ~4 U ~* a. j
this->runFunctor();# g) G% ?+ l% I( x5 q% _* c' t. g
this->reportFinished();
7 M; \# \- X0 e |' x7 r! }: b8 M }
0 T3 W" I' S0 o. V; Z. L: o};/ L* J* D4 |+ t9 b
3 ^; _5 q I5 N1 T& ]
} //namespace QtConcurrent5 }. d' O; l1 x
H/ L5 e( ]% e) Y' N) S7 f v& k! i
#endif //qdoc
% R e1 {3 a. _0 X4 Z' y5 Z; ^8 B- X7 i- r. K
QT_END_NAMESPACE
$ ^& u- I: I( g ^' OQT_END_HEADER0 c/ B* q e; l6 O* t
' H/ v; `# A* ]8 v#endif // QT_NO_CONCURRENT8 I( Z7 {2 @+ |6 a7 Z
# i x% W% {: }8 r3 U
#endif
4 B+ i L* Y8 Q& s( w0 A8 m! h7 s+ X1 \3 [5 T$ U+ U
|
|