|
|
我对syslink进行交叉编译到arm,但是出现如下错误:1 s' E+ W8 k0 ^9 R; f& ^; 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 n. G" g9 K& B, d
. f; q% C# x: |$ R5 @; ], N
这个头文件内容如下:# k) A9 a1 ?$ z6 Y5 J4 a% |
#ifndef QTCONCURRENT_RUNBASE_H# }) S" q0 e; m) i
#define QTCONCURRENT_RUNBASE_H- J" k6 f! Y- _0 G. V) a) ]
8 X6 j' ~7 {0 d& I0 o#include <QtCore/qglobal.h>9 K' q8 V0 x- Z6 K& ~+ n( Z
8 f3 d( V6 P& n$ t Z4 C#ifndef QT_NO_CONCURRENT+ s0 i) j" o& p3 N" {" m1 z& I8 J
- q7 {8 P) s& l' x4 C#include <QtCore/qfuture.h>
: e8 p: v$ Z+ d i* e#include <QtCore/qrunnable.h>
' Q7 a' ]* {2 D$ f! |4 [. b. p#include <QtCore/qthreadpool.h>% T4 a9 c* Y* q6 c; @- o9 z( ?
9 Z2 g# v: u( _% ^
QT_BEGIN_HEADER# @2 v# v, Q+ d" q
QT_BEGIN_NAMESPACE
* B" i4 g4 ]- ]5 G% l( X @
# E6 O( z4 k, W8 gQT_MODULE(Core)
$ G8 u/ s6 U0 A. ?3 y; h. J
( D `! [# ~$ ^; I* Z#ifndef qdoc
+ F, P) n: a2 N2 |( D0 \7 S. ^0 a5 n) {, o; s4 Z, q7 k
namespace QtConcurrent {8 d6 p6 F( p+ @6 v8 R% @4 U6 S
: S% Z$ r3 b+ J. L2 Q3 l3 ^0 E: Ltemplate <typename T>
+ W# G+ S5 ^4 mstruct SelectSpecialization/ y, d& z+ @" L/ W' K z3 m4 I
{
. g; }" `$ J2 ^3 ~6 c8 M. x template <class Normal, class Void>
& f" p9 i' X7 p struct Type { typedef Normal type; };
, Z! [6 |0 ~1 H+ q};" @# ?8 `* J0 z& Q
8 n# Y5 O' W7 H) C+ G+ s) O
template <>7 ^& I* I% K5 V: r1 D
struct SelectSpecialization<void>
+ F5 ?- n0 A2 F) v) c" J* m4 \{/ }0 d' i: z* d S7 x! m8 x
template <class Normal, class Void>* i, t* s+ t) V( @ w6 g
struct Type { typedef Void type; };
1 d& @* i0 b( i6 m7 i c' w};
7 T, V9 E/ p* K, i. r3 a3 l
, ]5 }/ v5 m3 C ttemplate <typename T>
% D6 ]3 p; K* z. N3 `# qclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable3 L# ?0 F6 X* ^8 o
{$ R) u4 r+ I( x2 j8 B
public:/ G% u3 i6 u& m. f
QFuture<T> start()
% Z& G) Z4 E ?8 A4 d: _( g: x1 K4 v { g$ g: {. q: W" J8 N7 }& V5 x" X
this->setRunnable(this);
5 c) @- I' S7 b& w9 ` this->reportStarted();0 H1 c5 J4 u" x/ s) c* S
QFuture<T> future = this->future();0 f/ O2 r) ?3 _1 R' z# h! v. w
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
; Z. }* Z% r8 Z/ C, S return future;
6 L" M6 C8 b' }, ?; _6 e }% j' C! u5 D- C- ]9 Y/ o
$ f% p8 y& ?' S- \" a$ U void run() {}+ o1 T' l0 i2 ~' R, [* n
virtual void runFunctor() = 0; y2 R- F0 \* O3 E
};
$ A' x4 h! o# ~3 o" ?2 O+ V8 ^2 U2 [$ }7 d: h- a3 X: r
template <typename T>
% E; H& m$ r, L3 Hclass RunFunctionTask : public RunFunctionTaskBase<T>9 H0 q |! U0 q9 X9 t2 o( Z, ]9 U
{' m3 a. i) a/ Z+ |3 A* j
public:$ W3 G/ ]1 I2 c& r2 `; f
void run(). G/ | s% k0 w2 V1 |$ {' s! q6 K
{
& R' |8 Y, a# m% M, h: R if (this->isCanceled()) {
2 Q- O9 H2 V" ]5 v4 \ this->reportFinished();
0 Q6 M' w# @: ? return; L0 z; l9 u9 u0 T; n* c$ q8 B, _' p
}4 ~* H8 i/ r" G' t9 C
this->runFunctor();
6 ~) y% `4 Q3 ~& a8 v( l this->reportResult(result);8 C/ ~+ D% e9 v5 b8 A% `
this->reportFinished();$ D5 C$ K0 T' w( C a5 w1 N
}
7 {1 x! f0 v4 q1 s/ k. G3 p9 E T result;
+ e' s( c0 e" m9 g! d};6 R" H8 Q8 l8 B
9 G# F/ i0 q' g4 U# {( o$ _
template <>; J- ~9 T' Y2 B4 r8 h
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
4 L" G1 e% w" U# e/ d! K{
7 v% c0 J' m+ n. Y: s) E8 Qpublic:
: ^2 A$ m; t- Q* L7 r8 _1 X5 _$ Y void run()
7 g8 z2 n B. z+ d0 r5 P( x {0 }6 F0 H/ E; v9 s5 w/ H
if (this->isCanceled()) {, X# N7 s$ A( M J1 F+ J
this->reportFinished();) ~7 d, c$ Y c7 J2 a
return;
0 f# }2 j4 Y; ^3 ? }
2 ^. f- ^+ }$ F2 Q( t this->runFunctor();9 n9 W( L, }9 h; Z( Z
this->reportFinished();
, ?. W/ g! b. S! T }! |3 C. ^& G5 M4 L3 r' b5 ^7 |
};5 p; ?% m" i, z' [2 N/ ~, q) P
% F2 a! T$ |6 D7 y( u5 ^9 J9 o. H} //namespace QtConcurrent
" j2 R2 F& z8 q. I
+ n% e5 D; q) N0 b#endif //qdoc3 f7 g* F" H; f1 G
) H3 A6 [% x8 T g% e
QT_END_NAMESPACE
# n1 W) h" y, T* N" ?8 [5 oQT_END_HEADER
* u! J1 M6 ]4 `. z3 j, D" W
5 [2 W' A& z2 e#endif // QT_NO_CONCURRENT
' f; W( a9 ]3 W+ K; M
U1 i) j: Z* |: p& m#endif/ V8 Z; v$ b Y$ Q- Z- U
G. p3 G" I" v$ S: q* r0 ^' |" h
|
|