|
|
我对syslink进行交叉编译到arm,但是出现如下错误:' M' L6 q3 G! a1 o8 r: {) D
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
) q& {4 P7 ~+ \9 R9 s# A
; T: C6 c8 |% g# q这个头文件内容如下:4 W5 k6 @1 h6 W; ]; h% X1 O
#ifndef QTCONCURRENT_RUNBASE_H5 i/ h4 K$ |! [9 u; ]( L! w
#define QTCONCURRENT_RUNBASE_H
' S( f& j1 \: s; F, W4 L6 v, h, K+ P
#include <QtCore/qglobal.h>% Q6 R f& B Y1 i) w, q2 f
$ ~7 I* p% B/ w8 o% V& _0 n) _5 Z#ifndef QT_NO_CONCURRENT
8 M0 p. t' L0 f# ^7 e' ?' `2 G5 T. L6 s1 i" y8 D
#include <QtCore/qfuture.h>6 F, h1 L; V p2 e! U4 G+ u6 g- i G
#include <QtCore/qrunnable.h>
$ Y6 W$ W j1 F#include <QtCore/qthreadpool.h>/ F8 B# s+ Y9 O% F, L* F0 P
^7 A; S' t8 N& {9 m* zQT_BEGIN_HEADER
7 o! }% m- q+ b. ~ m$ AQT_BEGIN_NAMESPACE
$ d: i; ?& o6 {, |# T' Z3 W9 t) s1 h* @8 O; i
QT_MODULE(Core)6 m- R2 f. g4 ]/ n ?" E+ l. C
% Y3 s6 Y: u$ ~6 p/ D#ifndef qdoc
1 M. }: W+ ?9 v5 Z8 J, ^8 }
( S! k) R% ?* @# F( Q- K# tnamespace QtConcurrent {
: a Z. q* ~! L8 w: m& Z
+ ?' r0 ^8 b0 K" Otemplate <typename T>
8 g9 ~2 f$ @( U2 wstruct SelectSpecialization3 u7 u" Q* C# ]' X; `! {2 n0 G
{/ B0 v6 A# B! f/ o; @
template <class Normal, class Void>
5 M2 t5 L) e9 q+ t$ J# d l) ]4 x struct Type { typedef Normal type; };
* }% H! ^, v! X" N; Z- z};
/ f3 ]( ~. }3 A+ ]
s! W* M( ^+ p$ R0 {6 n( E& E1 ctemplate <>0 a e% Z& {& f. L5 p0 N: S
struct SelectSpecialization<void>
1 n7 g: O6 ]) K' w{. u- T0 W( g6 a. ^6 k
template <class Normal, class Void>/ e7 P& o4 Y) x
struct Type { typedef Void type; };
' S6 J7 P4 T# Z* D};0 r+ h; T1 ~& o/ I5 l1 s
2 ?1 X- }& r; r* }- ?8 O7 Xtemplate <typename T>
* `. T( i- ]$ F' _) S& o! Q$ g; Cclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
/ ?5 a. w7 M4 _# w2 a" y$ g0 }{
2 a Q2 X) w- w0 C, d6 Hpublic:
* S% H8 h+ k) W7 F' `' _3 M% h QFuture<T> start()
' @* w1 t. z2 Y: w& x2 c, S {
* T+ t$ s. b" ]& H this->setRunnable(this);7 V. H: W: p! r
this->reportStarted();
3 O! p$ I" `% r0 T QFuture<T> future = this->future();
1 Q7 F/ M' W* D QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);; v. g6 Q( o7 ^: v1 Z
return future;! b6 v I3 H' W) p S
}" E( L% e, c& ]' L, d# E% e- L6 r
/ n/ j! J5 @" f6 E void run() {}
! }% Z9 n; ?$ _4 G6 E virtual void runFunctor() = 0;- r* k( T% Z4 i: l5 g8 C
};
' T0 S7 i# o( o5 J" _
% l g$ w- {2 c( j C5 jtemplate <typename T>/ G) O1 a) m% O( j9 I
class RunFunctionTask : public RunFunctionTaskBase<T>
; b6 j1 T: G5 v9 F{
* j& z$ p4 ]7 }0 C/ V- gpublic:8 I8 m8 R5 M( {: Q$ l
void run()
, A# T$ ^4 T8 S$ F* j' X' E6 i% ` {
) X' Z6 y, U8 q P% ^9 | if (this->isCanceled()) {: [" ?' }7 l, I8 S
this->reportFinished();0 N5 Z; P2 U! J7 [1 r$ @
return;
6 q6 M3 @) K# a& C }
8 {: L- Y' H/ T this->runFunctor();
8 S. i3 y# f+ v6 D this->reportResult(result);
$ h z* G# w* Z: ?. k: S this->reportFinished();" m; w( o0 _: q* M' v4 D
}
1 P; {% W- k8 n# W T result;
/ ]3 A+ W/ {5 w; }. e8 D" w" W2 `};
u5 M) B8 \$ b) a6 `( R9 u6 j& a/ _0 [5 u
template <>
h0 e" U# p5 Q. ]2 Z; a7 W* y% {class RunFunctionTask<void> : public RunFunctionTaskBase<void>- ]6 K1 ~" i. Q: w# K* l* Q2 z
{
: E; s) {& a0 K$ \. ?9 u; h1 ppublic:" n3 u) a9 y& y4 W* N
void run(). a) \* p! V3 h; i
{) _* \3 a; K2 x ~* T! P$ W; m
if (this->isCanceled()) {
" w @! e5 M( x! d! ]; @7 E$ m this->reportFinished();
5 ]7 M8 c) n- I" G return;# \- `' c! x: P, q4 R! L! `
}
1 j0 `/ \: `' x$ Y7 N# l this->runFunctor();
' l1 o$ U+ D4 ~$ {/ h this->reportFinished();: W5 w. d6 x$ }6 K: b
}
( S" k' l9 u# k1 h};
% S' ]+ Y" [7 q
" y- u; t; s8 F3 C) I o} //namespace QtConcurrent) u" `! c! U5 O+ w. K4 X$ e" E
4 ~7 _& U" @! y# n3 P' l9 M+ N
#endif //qdoc; b; @7 C7 r* a4 y
" \1 A9 t0 f0 {6 ?8 z1 A8 G4 dQT_END_NAMESPACE
7 P; \- D& T; Z5 r1 c- g9 LQT_END_HEADER) d/ H" f( s; [$ ~* ^7 U
1 O1 v' I a% {$ \8 n! o
#endif // QT_NO_CONCURRENT) I8 X% J0 }( x5 Y
: g( e! J& q. [$ J$ M% m
#endif% T3 \2 h$ @2 f) h& e* U4 F
! {/ j/ k1 R3 J0 V) Q, G0 K |
|