|
|
我对syslink进行交叉编译到arm,但是出现如下错误:. z, m$ w" m. a4 y Q* ~; y: s% B; H
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'- O8 X; W* V8 D( N" ?& _5 a! |1 {
9 _, q2 [; I2 D! N/ x0 E" l这个头文件内容如下:
# M/ ^" ]* T. A% {6 P' T" @#ifndef QTCONCURRENT_RUNBASE_H
( Y/ ^- z3 \, A+ K#define QTCONCURRENT_RUNBASE_H
, S2 r2 I7 W- U
0 L$ H- ~. X9 ]7 S#include <QtCore/qglobal.h>
! T) {2 D2 f- i9 \7 L4 `8 w( @- c* w7 E7 E7 P% T. _/ L6 z
#ifndef QT_NO_CONCURRENT
- o7 Q4 t1 |( D `. d/ T) x% t( l6 R# ~' b
#include <QtCore/qfuture.h>
$ I& \+ S6 v+ e3 j#include <QtCore/qrunnable.h># Y% i+ u/ f( `5 {
#include <QtCore/qthreadpool.h>5 ~7 p2 D) r" R* H3 U' i8 g
, |) W# h- _$ @2 `QT_BEGIN_HEADER
( q6 P. E1 ~$ X0 _( @QT_BEGIN_NAMESPACE6 X8 a Q; j9 d6 ^0 t
A. Z2 L' Z/ C" _' s$ ~
QT_MODULE(Core)' a# E9 W* K! g5 F1 H
& z3 T( Y. F6 [* a
#ifndef qdoc0 P- y' K2 u& B9 o. M l0 A( m
) Y1 S) l& Q8 Z: ]9 v
namespace QtConcurrent {2 O2 e7 t' _5 `4 u4 A9 h
# E/ Q0 M- e p0 e3 r1 K
template <typename T>/ S- d/ d8 _3 _! B6 {
struct SelectSpecialization
E7 i; d5 F$ n# U; _+ m) a" ?{
, i) ?, c" L6 w* b6 } template <class Normal, class Void>$ b: a! m) Z9 ~5 |% F; ?- C2 J! [; j
struct Type { typedef Normal type; };
7 a9 a- Y% k* H1 f" D$ x};
7 m8 B! E0 x5 p7 E9 X
" Z0 q% U' N' D9 e2 C" f& itemplate <>+ t) v0 ^! Q: K9 ]! Z2 b
struct SelectSpecialization<void>: v4 j6 G7 A7 m. w* a" j/ s+ f& |
{
$ u4 m/ S+ ]2 S2 i5 L. Z template <class Normal, class Void>
1 i/ u+ ^7 G# |; h3 ` struct Type { typedef Void type; };& f, `) X6 _, W& k/ O
};
3 u V! U- w4 n7 i! |& Z, _: k2 {& F
" N- e( Z& i' u) Jtemplate <typename T>* b" g3 y( P9 D5 n0 l) Q* x% f
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable5 P% y+ u: X6 Q" z+ `; x
{
2 T' x' P C' M: E/ D3 r1 d. S$ Rpublic:
4 o7 a& c; h" b% q QFuture<T> start()
, }% v6 f: e, C: N# c! H+ D$ I {
$ N; D) [1 K0 i0 b this->setRunnable(this);2 R8 m2 e+ Q; q% |# O: ]& S
this->reportStarted();4 {9 [4 y! P# K+ j A
QFuture<T> future = this->future();: ~5 `2 _ s( w% s
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
) J) k( T; s) v2 ], L- | return future;1 |0 K4 U* |$ c P" M/ z: X
}6 y. @) f) c# I% ]
2 o1 d6 f' K2 ^
void run() {}
% B6 a g8 o, a! h( M virtual void runFunctor() = 0;
0 @4 N' E& {1 h4 f; x5 U1 t};% P( u& u& T% U1 @ [8 b
' D* [' A) [, ttemplate <typename T>4 a. N8 B/ a5 C* G0 y+ @& C
class RunFunctionTask : public RunFunctionTaskBase<T>$ v9 m' h- G$ K# y5 B) j4 W+ |
{
1 A! q* }) c2 u9 u" Dpublic:
4 U4 c3 f; J8 ?+ z$ w1 s1 U- v* Y1 |" z void run()+ N. {+ a8 k% |' C1 C- x4 |
{* G' B1 Z$ _1 d( Q
if (this->isCanceled()) {
0 q( S3 V0 U; Q% O( B- `3 ` this->reportFinished();
0 [, k0 ~+ X2 g return;
% Z9 l c: c- O5 ~1 { }
. V1 ~" V- E# E this->runFunctor();, f( [$ W3 d' c) H# P* l8 D
this->reportResult(result);
# E- j3 q+ V9 v" X h this->reportFinished();
; J% g( m" @3 X: ` }3 G& A; k# k4 m+ J/ Z+ a
T result;9 _, r+ A2 T% t
};1 S* @) f5 B) \% z: w
- m+ i, R) t# o& L4 M) \ P( L0 v8 H
template <>- B* @: N2 R% V" Q% V
class RunFunctionTask<void> : public RunFunctionTaskBase<void>6 ^) b/ I$ _9 y, ? n4 h
{, c! q- k4 o( i* k+ Q5 ]
public:
3 x, S- B! G, R/ k/ a void run()) k( |3 C- Q" d& b8 E+ P% q
{/ ^4 d% E. }0 f3 J- T! o
if (this->isCanceled()) {
5 l4 _$ m8 N( M) Q \0 U& F) [ this->reportFinished();& b4 Q; `1 s# G/ M! f
return;* [9 f* g- Q& N8 l
}2 o# @/ z3 |5 p. F
this->runFunctor();# l6 Q6 q$ Y# z% S
this->reportFinished();' k0 |0 t' }8 Q; V
}, q) l+ l& V1 V: j! m# K
};2 R! d: P& |# T4 `- O* o8 v
" E7 A! i- C; P4 \$ m
} //namespace QtConcurrent& D' z3 i" G3 |' S: [
2 [. v) F4 F3 }, I) q
#endif //qdoc$ T! I; m6 d$ Q% j4 w6 F" N
# ~" ]0 Q" V( M! X5 d! g
QT_END_NAMESPACE
- E; k( c) I0 Y m/ NQT_END_HEADER* Z+ a3 ]7 \1 r$ n0 u, ^1 K: o
3 N$ x% N6 h" c" n- N- V& }6 e#endif // QT_NO_CONCURRENT) O* y' K6 m# `- m3 t
: Y9 W' X/ T! F( h#endif
+ X& w: Y i4 P m) U1 h, G; ]
4 V6 w% G# ~4 K: a, W% A |
|