|
|
我对syslink进行交叉编译到arm,但是出现如下错误:( ~# Y9 p2 P2 {$ y2 \( R6 o9 d8 m
/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 N0 Z9 @2 P |% t) h' i3 a+ ^( Y7 a; e! A! N
这个头文件内容如下:3 n. I) P* q: }5 I
#ifndef QTCONCURRENT_RUNBASE_H
: m* u3 X# R" k$ j z#define QTCONCURRENT_RUNBASE_H
$ {, Y9 ^0 Y k5 ^% q8 a; |
. V% ^! g+ P4 m#include <QtCore/qglobal.h>% x1 S" n+ A3 ?
6 M' P" C: Z" c; k+ f/ Q#ifndef QT_NO_CONCURRENT6 Z# q: G0 i* L! n# m
% h7 |& Y% A0 @8 Y: @#include <QtCore/qfuture.h>) ^7 H8 s$ D* M" {
#include <QtCore/qrunnable.h>
4 }$ z$ X4 D. Y4 K- f; v#include <QtCore/qthreadpool.h>
" e9 j& Y+ X! ]% n! v9 H0 ]9 h
! F/ r4 e8 u& i! y- o' E1 M' x9 \9 zQT_BEGIN_HEADER1 f5 Y0 s% Q0 Y( [( J4 N* W- I. D Q- ]
QT_BEGIN_NAMESPACE5 l) p1 ?/ V1 c+ e
! X- b; i' t, P, Z7 Z! Y9 c2 SQT_MODULE(Core)
' P- e! x- H7 z* E% U P
0 J) x9 J+ P! T) S5 ~( `0 T#ifndef qdoc# H& p* _, q' p* l* A' u
+ y* F; Q( o$ ~. N4 v7 X1 o l% |namespace QtConcurrent {- Z5 T$ B5 I# F; D) B6 L* X
- b _8 @7 s5 e" [1 atemplate <typename T>
% N9 X! ?0 n1 Q4 }: V- d9 xstruct SelectSpecialization
* e& e( O# Q8 K5 [8 H: K3 _{
0 ^6 ^9 g# ?6 ~3 {8 g template <class Normal, class Void>
) ^( b: }+ i* Q0 H- Q struct Type { typedef Normal type; };* m+ k8 P- ^* H% b3 R8 a# W; M/ \' b" u
};' r" w1 J8 x, P/ Q. T
9 r' j; |) c' O, U3 ~4 W% L7 Atemplate <>
0 p3 f( ~/ h" k6 r- T ]3 {struct SelectSpecialization<void>
! _( f) e) G1 T, P2 L7 ]{2 G( c1 X4 B+ k
template <class Normal, class Void>
& f( D! @1 _/ K% f3 \6 B struct Type { typedef Void type; };
~0 s+ D, A* _+ n% z1 B};) J9 {6 {) G5 g/ |
8 v! M" F' g& ]& G( m
template <typename T>/ O8 z0 }" ~* ~9 r
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable" O& z. _& A1 a ] L! N) ?1 d
{/ f3 T( M, Z' C6 X/ M
public:4 C/ M/ \' V" n$ L- c
QFuture<T> start(), S' [. i% D S) C/ {& h
{
9 A9 l6 E3 U1 J) ?$ a this->setRunnable(this);
3 Y' F \3 c2 r( I/ V( T this->reportStarted(); ^) J( j* {0 `5 c4 ]" h
QFuture<T> future = this->future();* T) S6 z4 z% n5 S$ U* M
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
9 p" W) i R8 {9 Z" ]; w return future;4 R; I0 V4 j# c. a& ?
}4 t0 v: N0 `0 c& Z! V5 v8 o% e
l6 i' o" t/ Q1 a% r$ v
void run() {}) N, W" u& c$ f9 U' O, D2 g, D& a
virtual void runFunctor() = 0;0 D/ w! ]' r5 G' F4 a% d& J( i
};" |+ B) I# S$ o2 }. _# N2 r- r1 ~
; }8 [/ {- a0 X. o+ Wtemplate <typename T>
7 V5 h& d' I6 |, u8 Qclass RunFunctionTask : public RunFunctionTaskBase<T>
a( c# W: F; }1 b$ V' K. K{4 q$ U9 ?2 U) N1 }$ y
public: x+ X0 E& |/ I5 W) Z3 H5 z( g& |- v
void run()
* A1 B" U$ m& I6 k m8 R- e/ S/ D {! H6 X* N: q0 L" b
if (this->isCanceled()) {
. x( G# d$ Z' l this->reportFinished();
% \0 A( ^6 D# n return;
* G/ G) G7 l" o2 @ J }
$ }: l! @2 w! k2 y* M- Z7 A this->runFunctor();
, M: @: H4 f3 K. U3 }" V# N this->reportResult(result);
& b& n& l; e' Q. f+ d this->reportFinished();
& G) m3 H: Z8 [" n Z }
8 F3 R) }6 \" C+ I8 M, Q T result;
, Q4 N2 Q$ T! ]4 w3 K# V0 r Z};+ ]2 }& E0 B6 l( [
$ N1 @' S& ]/ K* |2 a. btemplate <>: V0 j# I% ?8 g3 y9 x
class RunFunctionTask<void> : public RunFunctionTaskBase<void>& u/ v7 l4 V, w6 Z0 n
{) k8 q* y2 D% b' Q- w2 v" c
public:
" r* B' H& t5 [ void run()
1 G2 q* P& z& N# k {6 D( E5 u% ~4 `4 V
if (this->isCanceled()) {% X6 X6 N. A0 E+ C
this->reportFinished(); P1 n- I; F# T
return;
# J0 r. l* ?- V }2 r; ]7 W) t! e- ?' ~
this->runFunctor();
0 @5 O; S* {& t" P( r, G' m) { this->reportFinished();# m, v( @) l& l1 z7 L
}$ `$ q' {9 q3 }" A; P: L# }7 B
};6 a1 X8 _# x5 I/ [# G9 K' r5 I
* m/ [1 @7 k0 \! |/ S0 Q# z} //namespace QtConcurrent
; B: I: ~+ {9 D, e: B3 ^ Y# j B: X4 u3 Y! ]
#endif //qdoc/ a5 d/ } l1 W) v4 \
q* R3 S) T. xQT_END_NAMESPACE& c4 ], S @7 B
QT_END_HEADER
& @& B2 n$ z1 N* u" X) `2 T4 o! U- p1 Z1 v* c6 Y
#endif // QT_NO_CONCURRENT& I. t8 r. }4 z# l) V0 m; m4 N
, q: n7 |8 V5 R. h9 F! _+ v2 U#endif2 H* m( e, R2 x2 r- k# H0 r
% W0 k, O# L4 Z. q5 ?, b8 f+ c |
|