|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
; l3 ^( {* m9 S: e6 R/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'$ G( e& ~6 ]1 @' l* j
5 ^- K* d+ d6 L# D4 V6 Q+ _6 p' e
这个头文件内容如下:' n. \0 u. w4 H
#ifndef QTCONCURRENT_RUNBASE_H
& G9 q: x5 @( T% t#define QTCONCURRENT_RUNBASE_H5 v9 \6 `5 _2 H7 s6 e$ `7 L4 d
: T3 v. G0 \9 J
#include <QtCore/qglobal.h>$ H7 c/ ^- f3 j* u) M
3 Y3 z1 p2 l, q$ {
#ifndef QT_NO_CONCURRENT
5 \- c- K) @( E: G7 ?2 c6 R5 h- j# ^# w4 n! u# h5 ~2 T
#include <QtCore/qfuture.h>% g( k8 h K; N+ l: h$ B/ J
#include <QtCore/qrunnable.h>
9 R( v+ l( c5 O3 |# i. t#include <QtCore/qthreadpool.h>1 ]! s# ^3 L& a" ?
# a( `$ S- E1 m; s' dQT_BEGIN_HEADER* n) Q* G6 p& n( y" Y
QT_BEGIN_NAMESPACE6 q- f" w1 A/ {0 Z% G0 }7 M, [
9 k0 c" V* k. A
QT_MODULE(Core)# P! h% e0 D' s% f% |
2 M c$ N" w! ?* D#ifndef qdoc
4 Q+ G- W$ m, g: R, H# l& X6 p; P. [7 G6 v d" `: q9 M
namespace QtConcurrent {
! m9 h( C7 ]( o# A* D8 ?5 [ Z* N4 O, m& m4 ~+ I; j3 r( r4 t
template <typename T>6 t' [! w( j- A2 k
struct SelectSpecialization* g" Z3 F. f/ C
{
* e- {! w7 o. @6 G$ H' B template <class Normal, class Void>! j4 R+ d. b. ~
struct Type { typedef Normal type; };
1 H: l: Q0 C+ |& r};) G8 X& S9 u/ h) M- ~- \
+ M6 `0 G" e' O7 M8 l$ I
template <>
0 W1 _" g: |9 r% Y; W* q% @2 |struct SelectSpecialization<void>
, \2 |8 y. ~3 @ w7 v1 X$ V{& {( U' C* C7 ^6 \( m6 w
template <class Normal, class Void>4 ]2 s' D4 ?1 Z+ `8 G
struct Type { typedef Void type; };
! T0 P3 [- t9 ~9 R; A2 E};$ F1 o0 o+ Q: ?( c/ R
7 q1 F; e- d/ e/ C C
template <typename T>
7 Y0 I2 u% N9 ]" B! Nclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
) y3 |% W/ \% Q{
J2 V9 ^$ A- {+ Z: B4 ]* F; ^& Mpublic:
2 m* J9 U4 n8 q* ?8 z# i% D QFuture<T> start()
* R8 L8 Y% h$ w3 ] {' h, N9 K9 V9 F2 j3 s3 m; r
this->setRunnable(this);
5 h# R0 ]1 c! g, v5 ^ f N this->reportStarted();- a. d V% r, o! b2 V
QFuture<T> future = this->future();! \* n. W' s) z7 g. P1 B7 n
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
2 \# E6 n" ~ }4 r3 ]3 V. @$ t; f return future;0 @' X$ a ~9 j# f% K# F
}
! N8 i* z. J3 v$ c r q& l
2 A, Q- G" V) A' n( M9 ? void run() {}
$ t; N9 Y% T5 `6 z: Q virtual void runFunctor() = 0;/ G( j& {# X5 l1 C7 z( [0 a
};: ]1 A3 _' B, r4 O3 v2 ~
9 k. s) W) k/ e9 I; o5 q# Dtemplate <typename T>
0 ?9 J# {9 F! Z1 oclass RunFunctionTask : public RunFunctionTaskBase<T>7 Y' f6 ~7 o7 M D+ ?1 r$ ^$ Q- Q8 t9 Y
{
) F: q1 U8 X: A* [6 T' }( ypublic:! t3 B9 Z3 `! W4 s8 k' C
void run()7 F, v6 s! S6 s' E9 z$ q# P
{2 e" {; G& I- `; @
if (this->isCanceled()) {
9 P9 @* x( \1 r this->reportFinished();7 T, g0 @6 z, K6 x5 K
return;
2 A) W3 r {2 }, j( g- }7 }) d }
' Z2 m; u' @0 C1 F3 ] this->runFunctor();# X9 N, S3 _4 C3 X x( q
this->reportResult(result);
; U8 N/ u6 E3 d1 ~7 ^ this->reportFinished();: q! S/ G: [4 Q8 E! W+ w& n0 K! J) i
}; _3 ]$ ~* [2 H2 `! P
T result;- U0 J ^( F4 Y0 R
};
/ [+ l$ A2 Z) E7 d
; c' y6 S! V1 W- x0 Htemplate <>- v9 a" @3 B% s! j& x
class RunFunctionTask<void> : public RunFunctionTaskBase<void>- H. L4 `3 ?2 u" x
{1 ]8 D6 I+ b( }6 K
public:' y1 u$ N, }. j! m* Z
void run()7 F/ i. o9 T8 v7 |9 F
{/ S1 R+ Q& o& ~& f: r# h
if (this->isCanceled()) {
% U T9 Q4 A: B% u; r; k, r3 |2 o$ z7 n this->reportFinished();
: j% r% ~' u; l+ ? return;
: v% a9 z" Z: V! ^* N/ X! k }
/ P% k& Y$ y* X1 J# A% k; t this->runFunctor();
5 z2 h% c- q4 k. f this->reportFinished();/ e2 z6 W5 Q6 e' K$ M
}
, _, o; R! C( J& R6 n- A, c};: k& o% ~- @2 E
' p% u; _2 ?& e, S$ s
} //namespace QtConcurrent( _; O/ s0 t; x% Z
* o0 | A, U8 g2 G: g! a% `+ p) j
#endif //qdoc
# |0 [3 U9 s2 a0 X: m* @! s+ t3 i
9 d- W( g- R; p5 b9 U* w" B/ Z- EQT_END_NAMESPACE, w7 `+ d( l) R( m
QT_END_HEADER
( {9 l1 _4 x2 S4 O+ B4 e& l: ]5 a: G6 h$ H( ]
#endif // QT_NO_CONCURRENT
7 C0 C g* [6 g# x1 y
" h' s0 T7 b: `& D- G9 T6 C#endif
4 F) \% K% a( _* z# ^1 P
# C8 _+ O$ y4 {5 m4 ?2 R0 r7 b |
|