|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
' e# _! N/ o7 Y6 B1 L( n; N0 x K/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 C* q1 @ v: ?( W. _- i+ `/ S5 w
6 l5 J! L# G6 Z: J" Z这个头文件内容如下:; q5 R. X" `8 t n {& [( p) W
#ifndef QTCONCURRENT_RUNBASE_H
2 |" |8 _' P" x$ h3 H! Y#define QTCONCURRENT_RUNBASE_H
0 X7 M0 B3 K1 E) ?" ^, \: j. I1 ?
#include <QtCore/qglobal.h>3 y8 h' {+ U0 V8 T
% X5 r3 R! }/ N# l0 Y0 Q( B#ifndef QT_NO_CONCURRENT
% k# B" [& M& F7 [6 G8 N2 Y5 t
/ u; F- S' l# @ n6 c1 ] { a. V0 A#include <QtCore/qfuture.h>
" A2 ^- M# Y' | L) W7 M0 T& g$ g#include <QtCore/qrunnable.h>
# N* y- M+ ?* `0 Y# B4 I#include <QtCore/qthreadpool.h>2 O. r) H" n) [4 [% q
5 n) Q/ s' g* S8 y T- CQT_BEGIN_HEADER
?* k8 l! ^: C9 n0 XQT_BEGIN_NAMESPACE
. R6 I" Y4 M& F2 `, z
4 M* ~4 F2 F( b2 v( E+ v4 I9 I- {QT_MODULE(Core)
* `9 F/ X0 K, k8 L7 T. X) S2 W$ G2 g: N8 N
#ifndef qdoc9 l3 v3 n1 d" K) A* }
5 P A: W" N4 W" W) Q6 @5 X8 Xnamespace QtConcurrent {6 n6 z" F9 X- O% L- R/ _2 q) z# I# l( g
! b" {0 y% G" V# i+ m
template <typename T>
/ s8 s$ _+ U8 Y( p0 h0 b4 G* Estruct SelectSpecialization; j6 q' R5 T& R$ |6 k. c
{
3 s1 Q" b0 Y+ y template <class Normal, class Void>
( Q) Y% q5 }/ f3 h" Z struct Type { typedef Normal type; };
5 y2 ?1 c- A5 E' @' B};
: Z. |% `5 ^3 J3 H h5 W6 f$ E7 y4 B- ~% S% x: P% e5 H+ E9 h
template <>
9 F' d# C K ]0 K) c1 sstruct SelectSpecialization<void>
4 `: h$ O5 ^" i# v{
* I! R; M2 f7 F8 B- ?1 j template <class Normal, class Void>* V0 @& ^2 @2 l: r C7 P; Z
struct Type { typedef Void type; };5 W) {# W! B$ e2 U1 q
};
% u6 n' h& O$ b. U9 F) H g7 A5 o* C
template <typename T>& q1 R) C9 M" j7 G. P
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
' N3 p- l; A! F* N4 Q1 H{8 m5 n% w+ i1 u4 P9 H" q2 k- {8 C
public:# k" r8 R: D \
QFuture<T> start()) W- n1 H4 l* B& y# X
{
$ u3 W" i4 O3 C$ e, b- _/ `3 D this->setRunnable(this);
- a& `* Z' g( I) l5 p' ] this->reportStarted();: r+ F7 E h6 R4 D( B
QFuture<T> future = this->future();
7 i( ^( Y$ f s) u/ k7 _ QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);5 [8 C# N O; S4 w
return future;+ o* o) n0 @ v! B
}
0 L- X' D6 O$ a$ z$ f2 y. b) W' U
, }+ `4 b: e; w$ c [; L/ O void run() {}
& Q' q* \0 X- r% b4 w; x virtual void runFunctor() = 0;
0 ?( s& f5 Y6 B. c/ p};
5 F& F* c7 n1 J, J- w/ ?
4 W9 |9 e# ~' r* stemplate <typename T>
f2 \, d. d- j! Eclass RunFunctionTask : public RunFunctionTaskBase<T>" Y3 X5 n* F8 Q# h# F5 G9 b
{# B) Q* m4 c0 y3 t: c B
public:
; m8 i" R8 h# g1 | void run()
- f- }! W- ~/ R2 F* K/ c {# s. W! W8 }( y& Y9 F9 E( r7 X
if (this->isCanceled()) { [: o3 V8 q7 {1 d" W% i4 o" ^; \) \
this->reportFinished();( @% `8 K# A2 _) Q$ T
return;" J3 }* t/ p+ M; g
}
& u4 j) d. ]3 B! d# ]* r& B this->runFunctor();
! F M, \: K/ l& ]2 G: g this->reportResult(result);% G* @. M3 L% g9 s a8 V
this->reportFinished();8 @7 N* w& b' h6 _5 s! O* {
}
( p5 E$ z/ X& V. @! d" ^ T result;
- U- @0 y* E( y, ]& O};4 g9 I8 {; x7 E& X) v( W ^* H7 W
3 @, } H3 Y& n" j8 Stemplate <>
" ?8 O8 x% |5 Q/ I# O9 h4 Y* tclass RunFunctionTask<void> : public RunFunctionTaskBase<void>/ ]0 ]) K0 S# s |# J1 t% _
{/ ^! n1 w6 w" k( G0 M( x7 j
public:8 Z9 z3 G7 H6 c; x4 j& U; Y
void run()
/ S3 c @/ _0 `- k {- L6 N, K7 z$ J- X; Y6 n
if (this->isCanceled()) {5 I2 o, [6 A+ v( O' Q9 Q, c+ R
this->reportFinished();
' S, s' H8 I/ x- d) G& C, n return;
4 A: I6 o; W! ]2 t, B5 Y% r! a6 x: X }' |8 X' V/ L, c: t! b; u
this->runFunctor();
! C1 K, I/ f& J2 x) C8 H this->reportFinished();( K# \% J8 a, g$ ^7 w5 V
}( S, ?3 h3 g0 p: S
};9 y: ~& \' m0 G+ P1 s
+ x% W: o0 s- H7 X# Y} //namespace QtConcurrent6 |9 N- ^8 m7 \0 n2 \- b
" K; M* @! v2 d, p2 t! i* Z#endif //qdoc1 f3 A+ i8 b* d9 q
- t" [4 ~$ d5 D4 N# ?6 U8 }
QT_END_NAMESPACE% m: x1 h! P: v8 w
QT_END_HEADER
( k7 y# X$ E6 k" Y! H3 S& U
' e! Z1 |4 q( [#endif // QT_NO_CONCURRENT
, k6 M/ c+ b$ u4 \" O9 p3 d& ^- \5 E2 R) ]
#endif
# g% B$ ~) }% v) u
; L* P d3 L6 K |
|