|
我对syslink进行交叉编译到arm,但是出现如下错误:8 U3 o4 D! N. N2 R+ [; l
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
3 S" S8 m2 ?5 f# X- m- }3 X: K& ]& l0 A" |
这个头文件内容如下:
% y* f6 V5 n( g- L#ifndef QTCONCURRENT_RUNBASE_H" L' T5 k" \; s
#define QTCONCURRENT_RUNBASE_H2 S7 s# N8 |7 [; b
! B" Z. k& x5 t: H: u' r0 P#include <QtCore/qglobal.h>
( g+ U5 M" j3 l6 E- j2 r& {% A, q+ D. B; \) L' m2 I7 m% W$ l
#ifndef QT_NO_CONCURRENT- C8 T4 M' r* z. M3 n. [) p4 t
+ n2 S" z5 t1 S6 m& B
#include <QtCore/qfuture.h>
* n- @9 l8 w, L0 y) E#include <QtCore/qrunnable.h>
2 ?! K6 o( R0 j8 o#include <QtCore/qthreadpool.h>
9 f+ z/ u6 u7 x _2 I* D, |& ^* F4 J2 u/ ~
QT_BEGIN_HEADER& S+ c5 b, u" D B' R2 N
QT_BEGIN_NAMESPACE/ U& ^7 r( V8 k$ }& R# B* a
5 }$ }# m/ s4 g/ D- u0 R) T" H
QT_MODULE(Core)/ c3 I) p0 J/ t' }- v
/ _3 g; X/ H3 o) f9 c7 x n1 t3 \
#ifndef qdoc
% w2 ?5 k4 X4 T* U9 U7 c4 J, H5 e
j5 k$ d6 r- Q' hnamespace QtConcurrent {
. v L4 K5 @4 [- }7 H. Q+ y3 k- z" l. b6 y
template <typename T>; U1 X, H8 T$ }$ t% o- `
struct SelectSpecialization. j/ ]: ?, {1 z9 k. [- S
{
% Z! @) @+ \, i; Z* @5 E! n' L template <class Normal, class Void>& ~3 a7 i( X. @& @% _" w8 u! P
struct Type { typedef Normal type; };
4 l9 M, R) i) f( ]6 k};
( F* c: A" W& f. w
7 v, R; F$ h3 Ttemplate <>
* d7 ]4 R- \5 c5 _2 Z I9 vstruct SelectSpecialization<void>
, A# g5 \0 \, W- E# S' F{: W' M% _' n1 n2 D
template <class Normal, class Void>. Y9 v0 \( E$ I/ R1 @# O
struct Type { typedef Void type; };" J- o, r9 m- a' B# U" r
};
% Z/ W* w# s' R% C, d+ k2 \* x9 `. x2 Y% b3 e
template <typename T>
# h/ v- x+ P" }2 k5 \class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
% m3 W$ G* ]. ^; {{3 A( |5 a# T7 N L2 {5 G
public:9 G7 N) p, V9 w7 h) v- Z. v
QFuture<T> start()
. e! ^* ?/ B' H: f {/ J7 N6 l" v' }% v
this->setRunnable(this);. C7 v: ~. Z8 b0 |. B9 ^
this->reportStarted();
; k* T! |$ ?' U4 B3 F. ] QFuture<T> future = this->future();
# [. M" r1 ^( t* C/ t QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
, V ^: K$ X/ h1 O, D$ l4 c9 U return future;# w! X: L- C- u& f' m U
}3 d5 q! ~2 G8 e
) E2 d- E2 l& I4 i# U' L void run() {}9 V0 j$ G: Y9 w
virtual void runFunctor() = 0;
$ t- w! p1 F* _3 T( {};& B R' `$ Q' [5 A
* y: s; k! F. F s* {template <typename T>* _' o8 k& I2 C5 t. A
class RunFunctionTask : public RunFunctionTaskBase<T>. v6 q9 ?, s: |$ k
{3 P" i0 X* c3 A5 {$ ~0 ~
public:( P$ ^( s! T4 i$ c2 y2 D/ _
void run()1 k7 l5 k1 I# S/ F6 k9 B8 Y
{( ^3 u! ^8 j9 v: G
if (this->isCanceled()) {+ [" e; ?7 q7 t4 e# g- o! f
this->reportFinished();
( q* w5 x6 v- } return;
/ `4 L5 K: c8 e }
; ^/ d! _$ K7 E3 k$ [' D) z this->runFunctor();
0 @" \0 K5 y% k3 |& a) u this->reportResult(result);( l( n+ G- ?- F7 }1 C
this->reportFinished();
; k0 H% ^# o! O" {5 o& R5 f }3 E- `- S" l0 n; G0 W8 n
T result;
! z& B6 a, O7 O' m: r};
' H T N8 V/ v; @) ^7 P9 L. o& a" T u
template <>
1 i$ N5 ^) D0 q+ a3 f: B! kclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
$ M7 M6 j! _* A$ U2 Q- [3 \{
0 W/ w5 z( _' l$ j9 q, g& fpublic:
8 y( d3 c) U% l/ ~3 Q void run()
9 F) p6 ~, [ X% w7 T& p {# G. F* l4 M* n& C* M) `, V0 o8 N- Z
if (this->isCanceled()) {
0 G6 ]. d: A4 R' L: j this->reportFinished();5 p1 u% M6 E* Z+ u! L! ?
return;! C* a( C: O2 ?4 r3 w
}
2 @' J: L) P3 X9 Y8 [; K A this->runFunctor();/ H# T, R% v* C' A3 t
this->reportFinished();1 k: e; s. I( i- C; _
}
9 q6 ]1 g5 e8 r2 p+ X};( o7 Z% x, M) q8 I1 `2 t
4 |0 [& w/ f [+ h: W! z} //namespace QtConcurrent* C4 ?) M) N: i) I, G; d2 A$ ^% _% g
C9 n% f1 `4 q: S+ s#endif //qdoc7 Z& n8 C! Y, ]8 Q) T2 p
% \) d- s( P, O! |3 W2 T
QT_END_NAMESPACE' ?7 {5 X! d/ \' p( D2 b8 u
QT_END_HEADER+ K7 |1 o+ _8 s, k9 C( `
( m5 k' d3 C$ r2 C/ B#endif // QT_NO_CONCURRENT( l# k Z& |) U7 i% S
0 G% x! Q( ^* w; c& s) v! N#endif
# K7 M$ w9 x& Y
! p! u( C" ]7 S3 u5 C |
|