|
|
我对syslink进行交叉编译到arm,但是出现如下错误:/ \: Y5 {2 w4 d r% D' }# o. B
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'7 J; k1 S8 [, j6 x! \! E V: H
! s# P; M4 {+ K% F; O8 v2 n这个头文件内容如下:
# J& k/ L$ ? n' q, @1 N; ^6 f: @#ifndef QTCONCURRENT_RUNBASE_H0 g3 ], E$ ?: {% v
#define QTCONCURRENT_RUNBASE_H( u7 _- b/ j, Y2 c
: ?( }3 b- ]) U7 d$ r' Q4 I( F
#include <QtCore/qglobal.h>
! W1 n2 J) @. o; F$ N- o0 G. T# B% j7 L# n1 |
#ifndef QT_NO_CONCURRENT+ ]$ _; a; R( y+ z# G
3 Q I( s! h0 a" s# c8 s% W#include <QtCore/qfuture.h>* Q+ k5 v9 Z {6 i& E
#include <QtCore/qrunnable.h>
, R9 O$ K2 `- v2 {" r#include <QtCore/qthreadpool.h>& [4 M+ n' [! P) i) P
( O# J& ]8 B% T' {0 ?- p: o
QT_BEGIN_HEADER2 h$ K. Q4 G0 E$ V* R& e
QT_BEGIN_NAMESPACE
4 w! M/ N% [, x1 p. p1 X, n# W6 b7 O
QT_MODULE(Core)1 @9 T# q- k$ @* d
1 |% N& @9 O4 V6 W) b. F#ifndef qdoc7 |2 N7 h( t" Y5 |# Y
! `# m, y( }# q7 ~# S0 mnamespace QtConcurrent {
) e( Y# ]6 `, I( E! N/ E* ?: F- b% X3 }- Q" e6 k
template <typename T>
" X9 p+ U9 @* l/ Q" U. d4 K/ R6 Istruct SelectSpecialization
+ N9 S H9 G( i& j# I, [4 C( X! ^! j{
4 F3 H2 T+ P6 c template <class Normal, class Void>* u9 ~( `: C8 e* q
struct Type { typedef Normal type; };# N+ j& U, O7 j1 X5 H: O8 i% o9 M& X
};# ~* X7 M4 E: y
5 a4 i" ^+ Y. e8 G! _, S; A. g2 ^template <>
9 o$ c E0 b8 p4 Estruct SelectSpecialization<void> O3 A" |% L0 C2 M) `
{
: K5 \. u P* |7 s6 f template <class Normal, class Void>
1 F. t5 F# Z% p+ U: ~ struct Type { typedef Void type; };$ ^2 R& s. f \4 Y M+ C, e: R
};
# H. y2 c: k" s$ W/ |* P) z! |8 X$ {( @7 M
template <typename T>7 G' {* C1 k" `8 m
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable4 w( {$ m5 j$ u8 I Y3 W
{" w, o* K/ P/ z0 z6 i
public:, e9 s# U0 w; m0 s* d1 Z9 r2 }
QFuture<T> start()- e# M' o( n% |5 e: h: \! X2 v
{
& v8 [7 e. B9 _* z$ s this->setRunnable(this);* l; L8 C3 A% K x9 I/ K2 J: T
this->reportStarted();
' x& q: H- I( d; M QFuture<T> future = this->future();; L4 d. k( m: f
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);+ h0 g3 p) `5 ]2 F# D$ ?
return future;
: C. ?2 C! S7 @, T3 p$ a }
0 z6 Q5 {& W$ c% [- Y$ T+ Z- V! g G- Z+ g1 r3 p
void run() {}' i! v' E! l$ n- n
virtual void runFunctor() = 0; X% { Z Q$ P$ s
};" _5 i: f+ m, W! p' N
/ V6 o$ G% w) V, d: Ltemplate <typename T>
* G- h6 J4 d! F5 H i$ t S [2 }/ f9 Kclass RunFunctionTask : public RunFunctionTaskBase<T>1 |/ w4 Y/ R' l
{
F8 g$ T5 ?6 `1 e- Z6 Qpublic: n# X8 U2 B% ~1 p9 R; ] h
void run()
2 [2 ?( e# s7 T$ p$ c. `3 M {
* ~5 S: `8 W5 }4 ~ l) R if (this->isCanceled()) {1 i; n: L# K- C, I, x, \
this->reportFinished();7 K/ r' G! x" O2 ~
return;
+ w$ B+ V/ H9 a7 j; Y0 m, f x }$ v$ L0 v2 H! @* M
this->runFunctor();
, n5 z) r, M8 K this->reportResult(result);
4 N! r) Z- U* w' u7 h' @# N this->reportFinished();( O/ i; C) d" r2 g! g2 T
}. \# ]+ {* v5 {0 v1 F; J5 v6 B
T result;
y) \% G$ t/ r8 P6 Z. l& f1 v};: j5 x# U: T6 _- H
7 i ~4 f* H: p1 _! t, T( x* G) y1 ctemplate <>+ n2 n( u) _9 P" s4 A
class RunFunctionTask<void> : public RunFunctionTaskBase<void>" ?- L2 [" W/ K; y7 @* } l
{
9 I8 n \) e' w9 W! ~( Z, opublic:
) ?9 d" w4 t/ T: Y0 W A. E2 d( A void run()
; ^8 P; V: V0 ^% y6 t$ q {
0 f/ r: ^5 ~: m. e1 L" \) b5 | if (this->isCanceled()) {! Q1 o/ N, V; v8 l3 s7 u& f
this->reportFinished();! c5 ^( ]9 g# o8 i
return;
; l! q9 _2 ~* }7 x$ l e6 z }
8 j- a$ `' k7 |5 t7 n this->runFunctor();
( u1 r5 p) B% Z9 V this->reportFinished();; a) L3 J0 ?& t9 @
}3 p8 A& Y: ~5 Z0 v" f6 e
};# `- `+ O4 B1 f: f' y
% @ n, I/ y# {+ r( y
} //namespace QtConcurrent7 l3 x' E2 s$ x5 X- D$ A
2 s' t$ [7 x2 ^
#endif //qdoc- ~, P# X# Z; n* l; a
% {) @0 Y2 H$ j$ a3 W
QT_END_NAMESPACE$ F0 n$ s5 u8 P' `, h
QT_END_HEADER- _6 Z+ ]. ^' c' I
5 [4 ]! N* U' P1 `- |3 `2 E1 O, q#endif // QT_NO_CONCURRENT
8 o% H7 V- Y8 z% M5 U9 j
8 Y: y$ r( L' x6 N9 K+ T1 A#endif
& w- H* p1 ^# l. C8 O" L7 r3 T2 N: m# U# M. b2 y: H
|
|