|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
0 S3 d+ J+ V) m' n. |3 P2 i/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
& O9 X& s8 Y" o# w+ p+ @( ]6 z4 a0 [2 i# Y4 o
这个头文件内容如下:5 z1 {/ }& \- b
#ifndef QTCONCURRENT_RUNBASE_H7 Y2 s5 {( s% C
#define QTCONCURRENT_RUNBASE_H
g6 g3 M* I! k' q4 O/ e6 A2 G5 I2 u/ p' b$ j) I
#include <QtCore/qglobal.h>. \( I- i4 H1 t% k' q8 a
. `- }2 v" N9 p# t" t
#ifndef QT_NO_CONCURRENT
% r& ?: O9 ?* d( i" P, x9 U9 x! Y% N2 W, g
#include <QtCore/qfuture.h>- |4 Q9 f0 m, H9 I8 l0 V) a
#include <QtCore/qrunnable.h>
) V l6 E" A$ X#include <QtCore/qthreadpool.h>
" j1 L, ?; E. I, r) d' c: J9 a4 F) A7 Z. a+ \7 @
QT_BEGIN_HEADER
" f [4 q0 i H0 C: c" L; x. ZQT_BEGIN_NAMESPACE& e/ n, ]& L7 B2 P
! i [7 ~ M: |$ |) A+ fQT_MODULE(Core)
0 g3 v4 e8 H5 g$ T( j$ G
+ e5 i' t2 W. J( l" O7 B; e#ifndef qdoc
; ?, ]6 C/ Q7 r; O* Z
+ c* p9 a2 X+ c; Znamespace QtConcurrent {2 \! a4 r( c+ L9 V
+ F4 ~6 C+ D2 B; mtemplate <typename T>7 S' h# N! G2 _6 Y2 h
struct SelectSpecialization) s# r& Y7 n) |% }
{6 n9 _0 V* r- ~: W F, F; P
template <class Normal, class Void>
! |) @/ C! R8 j8 M6 n struct Type { typedef Normal type; };4 I, @8 H, Q' P0 I- r: `
};
0 G- Q0 ~( S9 r8 ~; m& h! K$ ~4 f5 `' ]3 F) v/ T8 H& M
template <>
9 ]) n7 d9 J) k! L. {$ v% p+ Hstruct SelectSpecialization<void>2 V2 _$ `: g1 A! U
{" b# J+ w# \- K/ Y
template <class Normal, class Void>! q, C7 S# I1 _- P
struct Type { typedef Void type; };
& {7 Z l6 ~- L* ?: A};
$ Q3 r: `3 m) ~1 B7 J4 c6 ?( o. S# n+ V6 X; ]5 k' q
template <typename T>
( b% E' P b: L% C, s0 L' T" Yclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable- _) o3 E0 ]# |# M1 O
{8 y7 W" v4 m* u5 L2 T# x* H
public:& v. Y. _1 e9 v" v
QFuture<T> start()# ^" ^/ ~" s2 p- ?/ H6 o
{
- j' X8 B3 I) T" y4 v9 C this->setRunnable(this);
' ^0 K" L* v: |; A2 y# N! Y this->reportStarted();
2 l4 |! z% G/ n" L& Y QFuture<T> future = this->future();, u5 W2 T& W1 O, x9 L: u
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);* `7 H' S4 f8 V/ d* j7 z) t( v
return future;% k. \3 V: y7 t+ i) t3 P
}+ z( A: R$ g7 x$ V
; a2 j5 q3 @. Y- y% C6 Q- h# B
void run() {}3 p+ k8 \5 X/ L$ I' O& p9 O( y: R8 B' O
virtual void runFunctor() = 0;8 f" s% c* K6 s' d% r$ A, o
};
2 Z5 S6 Z9 W: t" \3 V) j# F* n: c/ v N3 S. a
template <typename T># `7 {# D6 F8 b N; m$ H5 a
class RunFunctionTask : public RunFunctionTaskBase<T>
# @+ s# R5 n1 y$ O( n% b0 m! N{
, [$ [( c; ?; Lpublic:' p" I3 j' h1 n; Q/ L! X" L
void run(): e+ V" W! l5 D3 y
{
5 p. |) h3 o: X; o- z if (this->isCanceled()) {
% c! J% N( F, X; Z/ x, w! S: w this->reportFinished();% Y }8 X* h) V! y- R
return;+ a! u- o0 ^( x" y, \: ]6 l
}
6 B Y/ X) E% g7 T( G this->runFunctor();
( }! G* v1 O3 Q9 b* } this->reportResult(result);8 O- F6 L4 b6 x
this->reportFinished();
" o/ L# s& o/ u/ }; t6 H }2 f4 v- \% R. X& R. ^0 \% d. p
T result;$ |* T% i& w/ n' B; K1 Q* i
};+ Q. w9 m4 k* ^. P" ~( W
, ^( I+ @! A/ w; j# B- Ctemplate <>, h) L3 ~, c& B- _/ X& n
class RunFunctionTask<void> : public RunFunctionTaskBase<void>5 m, n' b- q5 X8 J
{
8 b1 S3 M% l+ L# bpublic:+ l; f+ V3 |$ x- C) j) R
void run()
5 S# l9 V3 t% E1 R. N8 w% a {
0 _( }4 r9 p+ u9 m# q, g1 P if (this->isCanceled()) {- L3 ]1 h: @' C$ r
this->reportFinished();# k; D Q0 @6 l0 e6 v3 @
return;
& V; T* t6 G4 q+ v% | }! a- P: I3 h: r, V; H7 P
this->runFunctor();8 B2 X0 [( |8 a# Y
this->reportFinished();) t. t& U1 @. H" \) Y8 K$ N( M+ q
}; ?- y; O& G& V
}; v$ q3 j- N5 {0 B, k
/ A: P' n2 j9 A} //namespace QtConcurrent3 d6 Z$ e3 k1 d& N. o- e
4 ?0 A& Z/ A9 y3 {
#endif //qdoc) l$ ^5 ~& B; {+ \! L( u
% X/ i( ?+ Z3 X" I4 ]/ O" l! ~
QT_END_NAMESPACE5 i: S4 n* d" z2 V! N' [4 i
QT_END_HEADER
. _# V4 ]6 r! r. b" o9 N( L
* x" B5 T7 ^& S0 |$ G#endif // QT_NO_CONCURRENT
" f, j( Y& T3 G6 T- Z" l/ z" r! g/ W) M2 U
#endif* ]# X1 H! n9 S+ w1 _ E3 Y7 [
( P' u: g3 K# b0 [ j1 t |
|