|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
+ b" W' F! `, {/ I0 ^2 s/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
, p2 N. q5 w b5 q8 X4 x( g0 I& s0 c% l, O. v4 z4 l' z) _
这个头文件内容如下:
+ \5 }+ C# Z9 }: b+ e# G0 B#ifndef QTCONCURRENT_RUNBASE_H
6 }" E3 y0 [$ P% O; [#define QTCONCURRENT_RUNBASE_H
* t, Z) T( v7 b& h6 Q+ O Q7 }
1 U- n4 z7 D7 o9 D- [' U#include <QtCore/qglobal.h>) q. M5 L( K/ }3 I
# ~, S* B) M- O: ] m
#ifndef QT_NO_CONCURRENT
# A! o* L# C+ O/ Y+ G
; ^ ` B1 K$ K. Z#include <QtCore/qfuture.h>9 j, Y) a+ Y Z) M& Z4 d- v
#include <QtCore/qrunnable.h>' H. @) L+ v8 S9 b" M! N% N6 U1 F
#include <QtCore/qthreadpool.h>, o- K- T! }! S
; V+ [. `. |/ J& hQT_BEGIN_HEADER4 g+ x, H% L/ I% w$ x* `" x
QT_BEGIN_NAMESPACE
( [( F, V' K; S9 l4 m$ m: _2 C- O* L( u
QT_MODULE(Core)
# G) B! C6 O, [
! I# p( x* c7 T0 ]1 p2 v. A5 R% u#ifndef qdoc
3 W" K- L! ~$ M. L5 k& O( g( S# F# i" p5 \" w: G: B# ] Z) f& e
namespace QtConcurrent {
- Z' ^- \% f U* T7 y$ g; a b
, a8 w q' |/ T0 l+ U, n1 Mtemplate <typename T>
7 E; g( r# P+ t0 W7 Ostruct SelectSpecialization# b; B' D3 K) A" g
{
) L) u2 W2 N6 G+ {+ ~3 x! p template <class Normal, class Void>9 p; s( d2 \4 \0 v8 ?7 ~7 Y4 r _
struct Type { typedef Normal type; };
4 A$ N. i- V/ Z( M7 x" a};9 p8 f; j- m. i7 [6 f# x* C
- Z, F% } N6 e# H
template <>1 Q5 K( `, v' y2 S+ j" l5 p/ T- i
struct SelectSpecialization<void>2 I" ^5 n& X) X& N" A
{- _6 g! n S) N V5 L
template <class Normal, class Void>
6 C' X9 J1 k6 S! S$ }, f struct Type { typedef Void type; };0 u! |5 ]& O( Z n# f( N+ q
};& a& }# ^4 {. V( A( s+ ^* C
4 q( T0 k8 `/ w
template <typename T>% c, m' L3 U. ^. K
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
2 F7 Y6 p) J1 c. x{ v3 ~. J( x; @, }5 B5 o
public:
" l9 f: q( W+ d, J+ i0 o( \; r7 h QFuture<T> start()
2 |2 T3 a, D- t { e z/ J& O7 D4 Y8 D Q
this->setRunnable(this);
. O4 ~% L" v( u4 h7 M this->reportStarted();: c M/ E( r/ B& e& I
QFuture<T> future = this->future();
' a0 \+ q: P0 R9 f9 _ QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);* B2 e: v, Q/ r/ A* ]2 F
return future;+ d$ ~' v/ Q0 b) y* m
}
, A% @, g+ g% n% ?8 T4 A; q O. g7 g* n
void run() {}
& X6 D k$ O( P! L* b- [3 c" R virtual void runFunctor() = 0;
) \0 T5 [. @ T};
9 o: Z. \1 k/ ]& |# x" U1 X9 T7 ? L+ k5 ]5 _
template <typename T>6 X& l' N" P: \ }
class RunFunctionTask : public RunFunctionTaskBase<T>
+ S1 ^! A# l9 r{
; E& x# e* H( p5 J. g/ U6 apublic:
1 K& f- Z- @0 v) Y i" k( [ void run()
( E3 X4 z/ k0 @- @. f1 j! ? {( s4 P1 G# Q+ S0 y7 }) w
if (this->isCanceled()) {! \5 M) p& e7 F
this->reportFinished();8 C. z6 j1 s9 [& B4 L! A9 I
return;
' y( s. Z4 F5 Z6 Q4 q% a }/ ~6 } h7 X, g! O
this->runFunctor();
* B) w O+ |. ^/ J N this->reportResult(result);8 }0 x# P5 V8 V; ~5 c# T
this->reportFinished();9 L, q& p! c) g9 j
}
3 O$ r3 C2 s' O) O T result;3 N9 M1 s4 z$ M
};. T1 v: B; c8 N ?
; T. b" M: N1 _3 M' h% g
template <>. l8 q+ A" O7 o7 {+ B9 N* w
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
* @: `" J5 N. Z# i$ C{
- T8 a) H; Z$ E8 e" T5 P2 |+ R5 Ypublic:7 J3 X3 G1 a) l" m
void run()" h) V5 k& R0 C# k5 ~9 s
{
D! X6 h0 C6 h6 L& Z6 H if (this->isCanceled()) {
# d8 h `6 A* u: ^, b this->reportFinished();
1 _5 r' k( m, } s! L4 i2 B$ l return;& }& a/ @0 Q8 S0 e0 Q
}$ o# V1 k, G; Z- y
this->runFunctor();/ s' n. z% f# f9 a
this->reportFinished();
5 v9 N Q$ C' y* z# e7 Q }
5 W) U: M. {- J6 M6 M4 K};
1 J! _! s3 c* E* @# j0 V% g
$ ^0 ]) P& i( g: j, {- A+ m; k} //namespace QtConcurrent$ @2 t6 i# A Q2 j+ e
+ C: Y2 V8 e Z5 I& {$ e#endif //qdoc$ N) p6 S8 q) y6 N: f! V
" K" Y4 Z& k* Z1 M
QT_END_NAMESPACE
3 m( E0 T3 t) O& n+ o! ~QT_END_HEADER
5 S( k) A' m+ L5 |2 {1 I- H, U7 ^- v( M _% I5 S7 x
#endif // QT_NO_CONCURRENT$ A0 f- }& p& c3 U7 f5 X
- N# {1 a" [) L4 h/ v
#endif8 X1 \% a4 c6 L" d
, O7 M, q2 o- Z! m( O, z) I |
|