|
|
我对syslink进行交叉编译到arm,但是出现如下错误:. m7 t5 t6 _4 L' x- _
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
2 t x; A* M( v( [9 n3 z3 n& r s- k. P, t- l9 v2 D6 s$ H
这个头文件内容如下:- h4 `2 Z d& O
#ifndef QTCONCURRENT_RUNBASE_H
1 R+ I0 E# m5 K% Q" U$ O#define QTCONCURRENT_RUNBASE_H# g! R* {. [: W" |# E9 _* P% S9 i; y* E
, Z1 F; H- Z' s- C c0 V#include <QtCore/qglobal.h>* g2 N2 C# H) N- H, a$ f4 Q
+ Q- k6 }- ~8 H#ifndef QT_NO_CONCURRENT
. P- S# g4 a, j; f4 \$ i2 n9 z7 }' a# {1 @
#include <QtCore/qfuture.h>
5 x/ U2 m) x7 V& q#include <QtCore/qrunnable.h>2 v' ]4 f2 c6 M' \& o4 S
#include <QtCore/qthreadpool.h> w' X; n, y8 M- ?% o
5 S: Y' I6 e$ p! ~! c6 P
QT_BEGIN_HEADER
5 x+ ]+ Q5 _1 Q& dQT_BEGIN_NAMESPACE
: m. l+ }9 L' z+ H$ J( L4 y
1 F" C6 N' l6 q' ~QT_MODULE(Core)
! @4 {3 d* A" h% a, J* T( f9 b8 a- U. _3 v; e
#ifndef qdoc1 u& n0 o- E: r8 G- ~
& J( B% H! A2 ? ]9 C
namespace QtConcurrent {; a/ N$ L9 m5 i' ^
# m' ?* o# U" ^, c* itemplate <typename T>0 u) S! T K5 a, w. A; s' B
struct SelectSpecialization
9 y G, h0 E: r{/ |* S3 c) W7 Y; L- Q2 u
template <class Normal, class Void>
- I5 t! J# u+ E/ ]" y struct Type { typedef Normal type; };
( ^2 h$ C3 s, d" G5 y};
# J$ i3 a' Y4 d; @
+ f5 D! J0 m, Ntemplate <>
# n$ N0 z& s) u. I' K3 ~struct SelectSpecialization<void>
- J: {3 U+ l6 X{
, f0 L2 c0 I' |/ v) k8 w template <class Normal, class Void>
) r0 C+ x0 e& F% h struct Type { typedef Void type; };7 H1 m: P7 |" z1 Z1 v8 C' N/ q
};6 G+ F. K q; L* \# S% }6 E2 K
3 {; Y( s' B& |; Z- |! ^template <typename T>3 e4 A7 v7 P. [6 Z5 d* `
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
; e4 [/ l' l# B- ~+ [{
5 m; o# S& x* A* Tpublic:: X% V+ B6 ?4 ^3 v
QFuture<T> start()
+ {& p6 k7 z0 i' n0 e8 U {! F& \/ {, n9 q7 h6 E
this->setRunnable(this);
$ X w/ E5 h4 S3 M3 d this->reportStarted();
, A4 I! h5 f$ t. P1 m QFuture<T> future = this->future();' ^; i' { `+ @; a6 I
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);! P6 o: H$ P: O s+ r/ t
return future;
* x: K' c+ g) o6 g7 K+ g. h0 Z }
9 I2 U4 q) z' ^/ B* W t
$ s7 h3 j. I, I8 j+ Y; l void run() {}
' l0 R; K" m4 P: O% g7 U2 K virtual void runFunctor() = 0;3 B+ K" D$ v. i5 w, o* X5 a
};) z& Z1 h& w0 ?% {
# |( J# c, p4 Y: L
template <typename T>
' ?5 s$ ]; O" c1 r4 p6 @( x1 |; pclass RunFunctionTask : public RunFunctionTaskBase<T>' ^/ r" R s5 ?" `( x( F+ ~
{7 h4 f v4 U( N" R
public:9 M0 E$ d" }# o7 x, z
void run()
; w' N( f* B9 [) _8 z {
- r7 }4 Z% k. {- d2 ?8 J+ I; c if (this->isCanceled()) {5 L t( P8 Y/ W# Y* T
this->reportFinished();( H) _+ G# D& i6 v9 I
return;; @ V% @- l7 ]8 C8 I A+ E3 ?
}: Z2 Y6 r; l2 G' _8 U' M. o
this->runFunctor();
6 V2 L. @+ W# w5 a+ a2 e this->reportResult(result);4 R2 q4 F/ k% Z. s
this->reportFinished();
, N5 k, y' O2 `# m2 C }* X( m9 |- ]4 i6 Y6 H$ A
T result;0 }0 a7 [$ b; y- H0 k5 F9 n g( n
};* \6 O }' V" y8 X5 Y
- s0 c, X; T$ K- Ytemplate <>. U, P* y$ Q/ j) r9 I
class RunFunctionTask<void> : public RunFunctionTaskBase<void># \! x F7 s4 c" G2 |( ~5 O/ C
{( n' l) r8 W. G0 K8 `0 {. ^+ m
public:2 W0 I7 T5 X1 G* l0 b0 L4 F5 d
void run()
! c8 n) X" H$ e e0 b6 s {& n, C, W6 t: i1 i9 [
if (this->isCanceled()) {/ F7 k! Z! d3 ~( y5 ?, N2 Y
this->reportFinished();) \, N' S, f) I( @4 {6 Q. t- k
return;
# ~; t3 |7 _& O8 ^+ U }
+ N9 l8 X6 O6 F: B this->runFunctor();! m- X/ o2 e4 U& \( G$ R
this->reportFinished();/ ^. ^& q+ T/ P' R
}" x1 K* K# j& o5 e" X
};; u" J" N. b9 H/ }7 |
7 r# n; _" p3 g} //namespace QtConcurrent
3 n2 B; l9 K$ P$ o, p+ X' Q9 @2 X$ O/ g6 |$ `
#endif //qdoc) t9 Q0 p% _# t: \8 Y
; | z. Y# A3 s0 }# g# t! [# sQT_END_NAMESPACE! d$ O1 ~5 w" f+ d# H
QT_END_HEADER9 w6 }1 z; I6 Q3 ]4 f
* m* ^+ b+ }( U2 m% s
#endif // QT_NO_CONCURRENT
* C" W) ^' X& I" e: M" j( `
1 E- {% c: E, M( Q/ F( G7 V#endif
8 X/ k8 ` O% t
+ ^% i5 e9 H @* Q |
|