|
|
我对syslink进行交叉编译到arm,但是出现如下错误:, V& I# Z: ^4 N" W9 F' W
/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" M6 Y8 G; L$ q, ^# q. Y- J
' L/ j) e( {% u
这个头文件内容如下:3 }% L; t( C- s( Z, c" B) a
#ifndef QTCONCURRENT_RUNBASE_H7 n& b" F" \( f: |7 }
#define QTCONCURRENT_RUNBASE_H
2 A+ u0 m1 g# f3 w% U* }# C1 d7 P! L4 O! x7 t' H9 z$ A. r; x
#include <QtCore/qglobal.h>9 c9 C7 S8 r( P. F; m* W
( c/ O/ g# I6 r) f#ifndef QT_NO_CONCURRENT$ x; L: ?* x/ s
* t- @/ q' F' F; v#include <QtCore/qfuture.h>8 f% m* H- V4 G% _1 @* q% p# K
#include <QtCore/qrunnable.h>
& H( H; @6 R: ]( C, {# o#include <QtCore/qthreadpool.h>
) ~; I7 d- U) K$ B6 X6 D. {) R: R: w: B5 q
QT_BEGIN_HEADER# Q2 E4 t) {0 t. `' t) l
QT_BEGIN_NAMESPACE
, B' j+ z1 {3 F* ~- O
$ `3 E8 ~! n4 H' wQT_MODULE(Core)
B, L/ C1 H& t6 e1 }# R: E' n
/ ?# ]. u% m2 n2 E. A#ifndef qdoc
2 q& r9 S9 p( |' X* c9 D y
/ p9 s' h# m% `namespace QtConcurrent {
* S& k' H l. ?9 |; q8 j! c+ m- j; f* H/ ?
template <typename T> G* I1 M' ^5 G8 o/ Q/ f/ \+ j
struct SelectSpecialization
% O. }- E4 p+ J \! w{1 d# Y8 l* X3 T, |4 I# {& B& l
template <class Normal, class Void>! H4 T9 O5 D0 o3 D1 \, i2 r
struct Type { typedef Normal type; };
) S7 i* M( I/ Z% z};7 _% W7 f, G3 B9 c4 m0 @" N1 r
6 m9 u0 Q' B% Q$ ^( otemplate <>3 B' Y3 g% q& s3 V& k
struct SelectSpecialization<void>. w( w# J0 N# Q) T4 k
{# y* D! O' R. E$ x
template <class Normal, class Void>8 o) W) W( W# Z% Y+ u
struct Type { typedef Void type; };. m' u1 Q3 z# E; r" p' m# o0 W6 x7 j
};. M8 n8 v+ @: L3 I
# T! Q; K, O6 t$ s! `template <typename T>( U b2 B8 T" [5 q% w" x
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable+ v% Z( j# v) A3 D [; }, \" K
{
. N3 k+ A: U8 M! C/ d) Qpublic:
7 E* U' Y' t4 \0 \( T+ V QFuture<T> start()
# Z( O* o6 B' R8 |4 g( t4 D {
8 k* i" d' ^( ]4 ^) | this->setRunnable(this);
1 Y2 R* D; f( E/ G O2 D2 G2 g3 o this->reportStarted();
( d8 h" L+ B/ ?, g2 p; l4 q QFuture<T> future = this->future();! N' S( |3 N+ S8 x* c( a. M+ P
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
& D2 U0 i3 Z% |/ h2 I' q% Z return future;
( ?! ^- k8 Z x W. q }
4 A6 ?0 ~3 K, M- P" j3 S; G7 u
& ^3 E- J' R1 ? void run() {}
. S$ n1 Q& J! q/ l! U1 D virtual void runFunctor() = 0;7 L# H+ h, }+ |* v$ P% Z" O
};. j: D( t- H+ G) h H' o1 q
. l6 L6 Z: X- E8 M% u7 Z4 I f! Btemplate <typename T>1 G+ K. P; o# ]" }! f
class RunFunctionTask : public RunFunctionTaskBase<T>
# x: Z$ v6 N' q{+ r5 F1 a' K6 i8 S
public:- j7 |0 v* {) o v6 i
void run()5 i/ n' ?" ^3 J$ e+ z3 A8 w) J
{
) F4 ?3 ~4 {+ z) l if (this->isCanceled()) {
( S0 X% Q) D) X. S this->reportFinished();
' J4 m# ^; H& p( A5 y) f0 U: _ return;; P, f. t! y6 X& k: X1 N1 |, P* f
}) u- I2 R* v3 V* i) w2 P8 ]6 f
this->runFunctor();* c. b- f7 W- H& s" h; k$ q
this->reportResult(result);0 _4 z* P3 f# Y
this->reportFinished();' R8 d. X. v* }; w) z
}
1 E' U# ` _5 n7 E, J4 r0 h T result;' W/ ^3 Y: l1 @- n& f- X+ A
};
0 I% G N" m7 a$ P/ B) M; S9 @ _# x0 m
template <>3 Q( [& A$ U0 t, U5 y2 F; t; l/ i
class RunFunctionTask<void> : public RunFunctionTaskBase<void>, E: b' G4 e& g" H% A
{# i- ]! L- O- [+ e
public:5 T4 G: b" L: R" T( k& b7 a
void run()
0 s/ m7 g) C" [ d$ U( O {8 a8 u$ r- {) u F4 B( g' ]( U
if (this->isCanceled()) {
+ ]; f% ~2 T/ \8 }" ?* W this->reportFinished();
) }, R) v5 `% w* z* j return;+ [$ k% x6 `2 O0 I3 U) \
}
* n5 P- `* [: K: g$ J6 ^2 p this->runFunctor();; E' ~& \4 D- ~5 I- B# J3 l
this->reportFinished();
4 j/ S U. l( v! W }3 p5 Y$ n8 P5 S/ o0 l* R$ {
};* c- q9 |; J! n+ e
; U: B8 ~, T, T4 h} //namespace QtConcurrent
7 U, }/ o& B& g4 _: {# ~
& z% Q) H# ?! m2 |#endif //qdoc
1 |% t6 ^* A; i# \# Q
7 M8 E* U/ ]1 _. `9 R7 PQT_END_NAMESPACE
! q: H" c0 g jQT_END_HEADER
: s1 m% X5 M- [( t$ N8 j4 s
2 i# Y% ^- r! g/ m#endif // QT_NO_CONCURRENT
5 {* {! l, _: U% E, {7 D2 V! C5 F: W& _1 Q3 @
#endif# H$ B4 q; V3 Z" s _5 ~6 g0 k
4 s3 `5 q+ ], |3 s3 O- e% j |
|