|
|
我对syslink进行交叉编译到arm,但是出现如下错误:9 Z' N! e8 {5 b& 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'
0 ]3 V- `4 @4 j4 r4 d% V1 F) C- u2 l' f
这个头文件内容如下:8 s& r! Z( ]5 v5 h
#ifndef QTCONCURRENT_RUNBASE_H
: W% `6 I8 @: [0 w#define QTCONCURRENT_RUNBASE_H
1 T/ R/ X$ \2 ^4 @7 a2 N* W# [
1 h9 m( o% R' ^) m#include <QtCore/qglobal.h>8 Z( E* f _) W4 e$ `; P
8 ^+ ^ [ f: u+ v( X#ifndef QT_NO_CONCURRENT% f5 S, i9 B$ x7 x# S
+ \, b+ I6 O$ q- j#include <QtCore/qfuture.h>$ P+ A/ s& E0 H' e% o
#include <QtCore/qrunnable.h>
+ f Z. V! ~6 C+ q: Y#include <QtCore/qthreadpool.h>6 \ {, z! h# D3 G1 m; j
( p0 b( X6 L! a9 T( z6 p3 tQT_BEGIN_HEADER* W+ X$ u! x% o
QT_BEGIN_NAMESPACE
! D6 k* B9 z# b( r m9 p' a; \8 }% K8 v9 z e8 z9 l4 r
QT_MODULE(Core)
3 S8 h* ~3 u2 k$ i" l7 F; L `9 I9 p, O
#ifndef qdoc' b9 `' J( g* Z# j9 b* P% q0 l
% l" u) |& Y' _% y
namespace QtConcurrent {
7 Q9 j/ I4 H, q" X$ ~ q% m3 h: P( D9 v& F( S( Z1 W- N# a: K3 Y0 X
template <typename T>
. b$ Q! ]% d; M4 }7 H8 _struct SelectSpecialization( g$ `) a* E# v8 x4 M- A
{/ c# d. K2 a S% _! [5 I+ G
template <class Normal, class Void>( `" `/ T+ y- N- w2 q
struct Type { typedef Normal type; };
7 Y. F7 \5 [, K};' q4 u$ _+ L/ _* D
+ D2 E( ~3 a9 L+ |) u
template <>
; ?5 ]8 o: j: u; X5 Y' Jstruct SelectSpecialization<void>
) e; o. A6 H" ?, ?! O{
+ B" `) M/ f3 l6 E template <class Normal, class Void>
+ ^8 s2 z3 {! X9 f( X& ?1 W struct Type { typedef Void type; };
" ?5 i% h7 _- c3 a1 [2 P3 f( N};
+ u& Q1 X' g- P# P" R. M1 k" r+ G& e' h
template <typename T>4 q4 K3 l9 N. ?: q, E
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable6 y; M1 a# w) f4 o; \
{( S7 {% M+ S3 Z9 n5 b
public:
5 \" C6 q$ g; J4 A QFuture<T> start()
% T% l" R- ^, Z# j {
& y2 t) `3 J. _) R/ e5 i2 h: I this->setRunnable(this);
' `1 w, ~& ]. H9 T+ V f4 s this->reportStarted();- y, v% V& h# t B
QFuture<T> future = this->future();2 s& b9 v+ Y4 F' X
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);( F/ w- O7 T$ {! S' N w
return future;
+ L1 s0 b% Q8 r }
! J R" D+ J0 I1 P. Z; J4 G5 h C) G
void run() {}. a3 e/ d K+ Q1 e8 N: N# m
virtual void runFunctor() = 0;: K- c2 @0 G v- `! Y
};5 X! J1 }3 F% w3 a7 g
V8 A2 ^4 l7 r5 S
template <typename T>
( g t- h0 A6 h4 c% ~" rclass RunFunctionTask : public RunFunctionTaskBase<T>. `. K# a* g- L$ ~
{
7 y2 Q& \% T9 f5 L1 npublic:& s8 U8 x, L: c6 X9 l! m7 G
void run(): ^- o9 D7 ^. D- V
{
4 a4 y4 d. i7 k if (this->isCanceled()) {
4 L+ k4 {! l/ u* R; o this->reportFinished();
/ R) i8 e- ], e6 |2 m' X return;
7 |8 G+ h6 _8 H* }1 V6 z }8 j- v, a2 v3 s _. U m
this->runFunctor();! w$ y! c, q7 z0 l' R$ D! S
this->reportResult(result);0 C' c* G+ u3 U3 ]. Z9 g, F
this->reportFinished();4 W0 v5 y/ D. h5 T6 w
}
" Q3 ^$ d, D+ H' A% D T result;7 O: X! i: z3 O0 C
};
0 ~. g& }( J8 g8 r( m \6 N1 I8 D
# A7 h2 R _) |! e4 ]3 K3 R- Ttemplate <>
4 X0 G1 C3 S* Gclass RunFunctionTask<void> : public RunFunctionTaskBase<void>1 H+ v' G1 M& ]
{
- C, J7 l% N8 D/ A0 n# [! Xpublic: L9 O1 O1 P4 L
void run(), _2 q2 [- F+ p$ s) i2 P! K- t
{# D) M/ v8 h1 W- b+ |7 [: |5 V/ ~ t5 M/ K
if (this->isCanceled()) {/ p+ T9 p" z, W
this->reportFinished();# a1 f* y+ L# H( L
return;- C$ _6 S: S' z
}3 V) m5 U. Q4 \* Q' b4 m
this->runFunctor();* h; q0 @# [5 g
this->reportFinished();
% z j; m3 e7 `4 `1 G }
$ p" W1 h( k2 P};
d9 J) w( e; r- k% Y: e0 Y: G8 y" S
# Z8 Q: E& U8 l- N4 |4 z! x. v} //namespace QtConcurrent6 E" J( [$ X0 f9 k, \, z( [
! x+ I6 A" E8 u+ e0 h# m#endif //qdoc
. B$ u' S% V6 d. l8 g( a x7 I8 a; Y6 [9 f0 I0 j9 z
QT_END_NAMESPACE2 B- r9 u1 s" o' H0 p: z
QT_END_HEADER2 o" x! w1 [8 N9 E% _0 j
8 B+ ?5 t, t% E+ g
#endif // QT_NO_CONCURRENT, U. p( W S& z" s J% \
7 G ]+ b8 t) Q k+ U+ y: }" W
#endif
( i# c! N; z4 ~6 }& G! I1 a( X& N+ E0 J! F+ i M2 o4 k9 L8 n
|
|