|
|
我对syslink进行交叉编译到arm,但是出现如下错误:8 I0 I3 P' Y+ ^, p( J0 M9 I
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'* b' w) [; |- s; h2 Y. N
! \3 d) W) {+ i# b) S2 {$ d u
这个头文件内容如下:
) D+ V7 z) W: F8 u& @* o+ H/ ^! f#ifndef QTCONCURRENT_RUNBASE_H' F- `0 a. C6 k+ E6 K) t
#define QTCONCURRENT_RUNBASE_H' }- M2 q6 ]' X" K2 K6 T
* a: Z* b; a) A% P0 r#include <QtCore/qglobal.h>
: q/ D* ~$ L- V" q9 H
1 A' O m8 z) g5 w. D#ifndef QT_NO_CONCURRENT
* Q3 {+ R- I3 k3 c7 h [$ |+ m9 m) q$ S3 w, N% U m
#include <QtCore/qfuture.h>
+ w9 X4 B# L9 N4 {5 b#include <QtCore/qrunnable.h>
7 }2 j* ^6 h- V' E#include <QtCore/qthreadpool.h>* S2 H5 a, Y- o4 \/ j; O
* X" ]6 r* \* i, \' AQT_BEGIN_HEADER
6 |) ^' Z! \, b7 ~9 MQT_BEGIN_NAMESPACE
6 U0 z8 \) T( |) g3 Y0 s3 m, J, K U3 |5 C" \: d
QT_MODULE(Core)' e# [7 I" o4 c7 Z: I% w$ {
5 }- `( \0 S( u2 A; d#ifndef qdoc! a6 d8 F3 [" W/ n- A8 F" O
2 _5 b- k8 G( B( }- F" j7 o$ }namespace QtConcurrent {
! `/ `9 C3 A7 n1 x/ U7 e$ x2 n
m3 D' [% E% y- {/ y# Ytemplate <typename T>
# S% c8 l7 P- i$ a% Ustruct SelectSpecialization) p: A3 T2 x, j2 b
{" H( G/ u5 S& \. Y9 D& i7 h8 U
template <class Normal, class Void>% Q5 H' R3 c) E9 }1 J8 M2 u% Y k
struct Type { typedef Normal type; };/ h3 A) b! g0 V- l8 g4 z( V4 \$ B
};
/ O+ r' U. b# m& d% @6 V s8 @
6 C5 ~! t" w9 {) U0 w8 ]template <>! r; ^9 j* k* k& S. Z" r- [+ |3 b
struct SelectSpecialization<void>
: m# v" e$ k4 a7 B{
4 U1 H8 O9 `( i& n! ^% ~6 p- L template <class Normal, class Void>
6 Q& C! N' X" l. `- E! s! v6 q struct Type { typedef Void type; };
n1 ?, u2 W" @% `$ d, C% j* K- W};
% U9 `" A0 W! }2 T2 ^ w- D& |# R
template <typename T>
- v1 Q6 T2 f. c4 Wclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
2 E+ S7 W' @- D, x1 N{0 O& p" Q4 @: H
public:
$ Q) z0 |3 |' o7 ]: } QFuture<T> start(), {; d5 Y' X8 y+ `
{# a* D' v' ~4 u8 b
this->setRunnable(this);
) G0 I* w9 A) ]0 b$ }1 R% y this->reportStarted();7 @1 y. i E( F
QFuture<T> future = this->future();
: y" O; j4 u9 S8 D: X1 s' G QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);( J+ X+ s, p; B
return future;
: G- W# K- z6 _. M$ \# K }- R+ f2 z6 B7 h9 ]" z% H
# Z- b( C: s5 l( [: ~; z, V void run() {}
& c/ V1 o" _( w virtual void runFunctor() = 0;
5 c8 A7 Y8 e9 }8 S}; t5 Z, _; w2 S8 d' t s
& c3 A0 c# E$ s# H
template <typename T>
9 l/ Q3 ]3 Z/ ?8 S' aclass RunFunctionTask : public RunFunctionTaskBase<T>/ v/ X/ l, V9 e, e K6 e
{
- @1 W# I) k( t5 z4 C& \+ Kpublic:" Y3 Y, ^0 d( i. F2 X* i l
void run()9 a5 ^( _' t+ q6 N' H8 k% p
{" L9 v. K5 ^& H
if (this->isCanceled()) { V# U( p. k! H% O1 P* J
this->reportFinished();
3 O3 V1 h9 N" ~4 j) T# n+ F return;4 L# o: W9 ^, f5 p
}
( `8 V+ O9 ~4 J3 [4 L+ A6 [ this->runFunctor();
! }. y0 B$ R8 v$ a, N0 u# E# s# E% \ this->reportResult(result);6 o& U- y. U- o6 `3 b
this->reportFinished();) l; Z: ^- C& x" H
}
0 T) _+ g. F% s( J D0 G' u$ c& C- X T result;
9 }7 t R$ H% |0 R/ z};
T, a) I' i+ @5 e B$ o5 ?
4 z, I+ e! ]% h" h' \template <>; v3 Y3 R5 V2 G( I9 i4 \( l
class RunFunctionTask<void> : public RunFunctionTaskBase<void>7 k3 l) J: w- _& l" A' Z1 |% Q7 g
{
+ q" j7 u' z" H0 d" |# Dpublic:
2 E: I9 ^+ j" T void run()
- f& {. |4 g" ~! y) H+ t) N e5 { {
F* y3 v! _- ?' r3 `; K" B' O if (this->isCanceled()) {
! p9 {' p; Z. w( ]2 V5 L this->reportFinished();
' X( h7 O. ~/ T6 W% w4 P$ r+ ^8 r return;: o+ _1 j* }/ B; {. z& k6 N
}* u: g* u6 T$ V) l" U
this->runFunctor();
2 d$ R0 S7 i" h# c# H this->reportFinished();
0 O, k$ l. E) z3 y }
# a0 k0 u5 M# g) J$ N2 X2 r/ M};
I. ~& `& ]) y) Z0 S' y% H6 K, F0 _5 v9 J- l& ?, s
} //namespace QtConcurrent
" C* ?8 i2 J% A; z
- @; D3 E9 h: a" U#endif //qdoc
3 F7 ^1 @4 k4 w/ j; D
7 {- S" n9 z% S4 `+ x2 a8 H$ t& ZQT_END_NAMESPACE
5 x3 v) c. K& D9 XQT_END_HEADER
$ S+ W* @6 U! c `( y; W) e$ X% ~+ X, m. v" f
#endif // QT_NO_CONCURRENT3 d2 @. t, K. K' I. _
9 p) M& B; c: I6 Z+ D: M
#endif
$ a; E' Q, e* y* [# k' ~
' E0 S# z! w. v |
|