|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
: h- e- U# l$ G4 J1 v0 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'; t& T$ K% S3 a7 i- w* F$ O
$ v. D$ y/ Q. J; W& F% [2 o3 q
这个头文件内容如下:4 m9 z3 I* |) d
#ifndef QTCONCURRENT_RUNBASE_H7 J6 V) p: z+ \# c7 {, I
#define QTCONCURRENT_RUNBASE_H8 N" k, m& W$ Z4 y8 M: N: J
3 f4 H6 W/ {9 j& w# d: x2 P#include <QtCore/qglobal.h>
8 z9 f: w: U; C1 V
, T" U& z" m5 h' e; P. M& a0 k* l#ifndef QT_NO_CONCURRENT% z5 `. D6 H$ l3 g2 R# g
/ T% e: T. j8 |9 s#include <QtCore/qfuture.h>
, k" m& P& c! i9 u0 K, {9 R#include <QtCore/qrunnable.h>
1 W9 W- J) q% b3 _4 ~#include <QtCore/qthreadpool.h>* B9 F% W7 w- a1 H
: |6 Q% W5 E; H" i yQT_BEGIN_HEADER
2 u- g9 ^: h6 \QT_BEGIN_NAMESPACE
]; T" ?' e Y- A9 g
* q/ D! M$ J& A# ^1 @QT_MODULE(Core): Q O5 N# t0 V q6 k" b
! o4 j+ Y+ g J6 B* K2 }
#ifndef qdoc
9 ^: Z1 A4 T! M* _, T
! Z2 o+ B) r: |; E" d4 _namespace QtConcurrent {
+ P* ?! k; D6 V( T# w1 w0 u8 Y9 y6 h ]( r* {! E1 i
template <typename T>& ?2 a$ P: K$ x. V# F( _! e3 [0 r
struct SelectSpecialization
" z' n8 L/ g. e; p3 k* v, d! V{0 B/ y# L6 l: n& x6 o
template <class Normal, class Void>) N- u$ }' O8 J, G0 Q
struct Type { typedef Normal type; };
5 C* V& A7 R! {: J7 T) f};# d0 Q& Z+ m& s! A
c3 x( E6 B7 i: e
template <>
% g! t# J1 \0 i# B: H$ U; nstruct SelectSpecialization<void>. R) @6 v3 C5 e0 T% `
{
9 |1 `2 G, v: D: J. L template <class Normal, class Void>! j- E; U: }- d
struct Type { typedef Void type; };
: j7 ~/ m0 N; \; r( ^) `};- W3 D" N( G4 @
9 w. t( [, f) x+ i% T) R3 E
template <typename T>
+ N. B9 X& }; v( e8 kclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
! j% x. ?; p* q I2 E# b" L, J' d{
: w1 ]4 W! B: N4 U* Qpublic:
, E6 Q n/ [9 y QFuture<T> start()
8 t( q: N+ u5 O$ D9 j5 _7 ^ {8 E3 O) y8 N8 S8 ^( C- ]5 ~
this->setRunnable(this);: _* T# L0 m- H8 a
this->reportStarted();
* u3 @7 M) d' Q* G2 G# | QFuture<T> future = this->future();
0 o3 r$ U3 w: D5 S QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
: v$ F8 y0 h f! M, X E: b return future;/ J0 H! q7 g$ `7 {5 ~1 L
}$ X0 y9 r3 y# M: Z" @" y
" E' d( O- g1 F0 p/ h
void run() {}: _" Z& M+ d& \- Y" [' E
virtual void runFunctor() = 0;
" i3 x2 ~7 ?' F2 T/ j4 o}; E5 p% J& u, A1 M1 c; L: u# T
4 n. u J+ S' n& ~% O
template <typename T>( G7 m$ X% o5 h/ R
class RunFunctionTask : public RunFunctionTaskBase<T>) h" U- C6 E, M- I H
{, Z9 i- c5 e' _9 H- m+ ~
public:+ @9 B- |4 w6 k( a: Z4 ?- Q
void run()
6 P, ~# |: D- H) k- ]" w' r- U) T* ~1 I {
, M. j+ H: _* H+ x2 n! w if (this->isCanceled()) {
2 C! a9 _0 q- {3 L& | this->reportFinished();
& V* v/ e- C5 }. C5 U return; Q0 i6 U6 S" J6 [0 L1 }
}( w# ?: l4 L S# \
this->runFunctor();; H9 D9 s5 s3 a4 }* |
this->reportResult(result);" ^9 W1 M6 r* x0 @2 N. p# y
this->reportFinished(); m' U6 g$ m1 g: ]
}
x3 y/ g! T" a: C T result;
1 D+ W+ H1 e+ ]8 O. M# e( N g};% T# X- C$ [/ @3 k4 J& g
- P! V0 L7 }, R9 S/ B0 k
template <>: v Q6 K) g# O( m' f! ]; P9 n5 z
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
6 a W' A! `% Y. T4 i7 R{( {3 P. g4 j6 g. K' Z, ~% ~; t7 X
public:
7 n: f, }, L" T void run()
9 l) O( M$ k! o( T" e1 m Y {
( ?1 O" d* O0 x, k if (this->isCanceled()) {* Y+ r5 R4 b# `2 }3 ~
this->reportFinished();$ x- D4 @8 a, D* i
return;
]7 f; A! r! P }
+ r) S+ b! N* O( a, B, D* Y this->runFunctor();2 O. |/ V/ X" V7 A1 l, N8 q
this->reportFinished();
7 i" e( N% @' c4 u7 E$ T }
" j+ c$ U9 `% u m3 G& O* w; y* B5 a};
; b+ N- X# N8 E8 W3 O
7 k, Z1 _ W4 Z7 H; }. T} //namespace QtConcurrent
: H& j i, p, C6 }. a
) ^% j. Z- n7 w4 l. q7 i; u#endif //qdoc" `/ g# a8 I g7 G3 d4 ?
, @; W4 O2 w7 h2 r" k. d: r* T
QT_END_NAMESPACE
; `) g" Q4 t5 VQT_END_HEADER. M l; m( y: I; l& v1 }( B. O# r
. N4 _6 [! b3 |) L* m( f
#endif // QT_NO_CONCURRENT1 n5 y$ j/ w+ P- `. C6 b
( B2 w6 C% b3 ?, a- r: R#endif
8 y+ E9 i6 Y" ?" F3 J4 D/ h1 F# t7 w1 g# h. B$ k
|
|