|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
Y+ X3 C! w/ C' G" x; O# s2 ]& o/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* A9 I- S5 X1 T; p& v) U% H% b" Z* m' h. r, H* X
这个头文件内容如下:
: i. b. [* t5 Z3 [$ O7 `, W#ifndef QTCONCURRENT_RUNBASE_H
* F9 b' ]! e: d#define QTCONCURRENT_RUNBASE_H
# Q! p$ g5 b7 w& }6 T
" ^3 ^# W% w/ D) p7 W8 A, r#include <QtCore/qglobal.h>
: t, ]5 D/ k# x; k
K) P4 g" n" L- v( C8 M1 d#ifndef QT_NO_CONCURRENT$ C& K9 ^, w' {3 ~! I
6 q3 e9 M, [/ V3 N5 V#include <QtCore/qfuture.h># J$ ?- l r' h7 g# V9 F
#include <QtCore/qrunnable.h>6 d0 [9 c2 C$ D7 O
#include <QtCore/qthreadpool.h>9 M& \' ?3 g9 D* v' u+ Z, O2 N
7 n, e0 u9 o5 t/ H8 K3 h
QT_BEGIN_HEADER; p, \4 U4 V+ {$ ]1 E1 o
QT_BEGIN_NAMESPACE
6 _6 ~: g, u1 j: b. i, b
" t( t- g) |/ p% A. E, M* J0 eQT_MODULE(Core)5 m# U( A9 y4 a; L+ R1 g; \
% k* c, O1 ^7 z+ l5 ` o/ d7 h e#ifndef qdoc
2 r) R/ y& g; I) q- ?! W3 g# Z. [+ l: F
namespace QtConcurrent {5 L* D9 S3 P0 p( r& ?7 s/ v# r
7 m5 _# r4 `; x- x' k) ]# j7 Y
template <typename T>* c; X3 E# w H% b' ^3 b! u
struct SelectSpecialization K4 f3 J g! w- y3 N1 m) U
{! y, S) [9 U$ n9 N) ]
template <class Normal, class Void>% }/ P- l/ |& f5 e6 k& t' P
struct Type { typedef Normal type; };
0 d, d* ~' }' B1 h5 z};: D& [# ]* I, k: X3 |. x+ C1 V7 L
4 y! j& h% x+ q2 y. o5 Q( Y0 itemplate <>
4 o! ? c- N0 i) l- Y5 estruct SelectSpecialization<void>" [; z+ T" h# W- s4 a' D) D
{
- e/ d+ J' l& n7 K' N+ b* t1 I template <class Normal, class Void>3 I& Z6 |) q3 O' `
struct Type { typedef Void type; };
* T- l: Z1 c) p i- l};
1 g* d$ Q& N1 \
5 J: R0 ^5 b, M+ B9 ~8 x/ Xtemplate <typename T>- R) y) d; O( B" M( B! K. q
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
/ i% X( x5 {# Y+ ^/ s/ U{
- k: A! ~ y) ?$ L% Kpublic:
8 b1 F* S2 [9 F0 H. \3 s QFuture<T> start()
( C& u3 u( T( Z6 y {6 l9 F R6 _5 R: b6 d" R- Q8 v# o
this->setRunnable(this);5 I" _% d/ s5 D# m5 E2 Z
this->reportStarted();
! j& s# Z: ^. E' Q$ h% r QFuture<T> future = this->future();
% E& Z8 p& p" O4 b X; P5 _( i; E QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
: [/ E0 r% H0 n" h4 ^5 d; j& L return future;( F; W0 Z+ P! m! k' b
}: D3 L: x0 I" g: L& h
3 x. g1 h! e- v4 v& U
void run() {}& G8 r1 v1 O- M5 ~2 d+ a
virtual void runFunctor() = 0;$ z2 e7 A3 h; C' g3 `7 [
};8 A# n& w$ u5 m: I4 _1 }
" I7 I1 h# o5 O
template <typename T>
, x! |" l7 m- y- g9 Iclass RunFunctionTask : public RunFunctionTaskBase<T>/ X4 p) V2 @* P" o" x" n/ P1 x
{
! W) t$ a) h. E# ]# I j# |- Upublic:% P% E7 W ~5 \% i E
void run(); `. C7 `' x) X' U' O% L& v% O
{
; A5 d5 ?$ U, ~8 p) E: F if (this->isCanceled()) {% U1 l* E$ z6 l* b% A8 Q1 i
this->reportFinished();0 Q+ V8 V5 y0 F1 S
return;
. _4 V, M3 [& u1 b" h% r* e0 | }
) G2 w- i$ |& p) w+ N. e this->runFunctor();0 R$ z* s7 t+ ~3 j
this->reportResult(result);+ G7 b* e3 P& c1 g
this->reportFinished();
- f7 p9 j, {. a( i# h }+ L! Y/ N# g% O, c/ I) B
T result;% b4 M! K4 B% Z. B
};
4 H# [& a h/ ^- k: p4 O. A/ u( m/ {8 w/ V" M6 |
template <>
! t L& I, s; U% b, aclass RunFunctionTask<void> : public RunFunctionTaskBase<void>0 ^* m; q' K* r* N" v6 [+ F9 {0 A
{
; ~! `. K4 s4 g9 g: G" ~ _. ]public:) N! q9 v2 o: B1 E4 x
void run()
4 [+ n- a! J, O$ w+ w3 S _ {
8 T6 D& h; T+ J* `, X if (this->isCanceled()) {
2 g) D* z5 ^$ J: H2 [ this->reportFinished();
Y8 {* O1 o0 C5 k return;
$ {3 s D- m, r. |$ }& ?9 j' ]4 s* o }
. P5 @1 ?3 u' R& A) u6 P) } this->runFunctor();" P4 z I. z8 |- w1 L" j2 p
this->reportFinished();: [0 A& j0 O6 z" G
}# Z/ l; f8 y2 W; h# ^/ I+ u
};) y/ \) c: v& X" L; m
! G/ L" b0 ?/ X8 ?} //namespace QtConcurrent
0 v. e* {1 ^$ ^" \/ v
5 ]$ x3 i( t2 ?) m( }. v$ O _% m" Y#endif //qdoc0 @$ G- H8 ^! m8 j8 f
3 R3 I0 B( E5 F$ YQT_END_NAMESPACE+ e( n5 f/ s! b7 f% W: N6 E
QT_END_HEADER6 d) y% H' ^4 g, o
) u. M5 R% [( m0 L7 d1 t
#endif // QT_NO_CONCURRENT1 ]2 A, @4 P/ |' [$ o
' g3 `( ^- d; Y% Q' z# H) I
#endif3 I2 a9 A0 ^ |4 |, R! E/ t
) K+ V- T$ O. T' l9 j |
|