|
|
我对syslink进行交叉编译到arm,但是出现如下错误:" V. J0 U% K9 B6 k/ ?
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
& p7 A; x4 ?; N% G, J2 a
9 ^' F$ A! S/ }1 s* z Y这个头文件内容如下:; Z- r# ^0 h+ U$ z; x! @' {
#ifndef QTCONCURRENT_RUNBASE_H( }) F, ?- k( Q6 P
#define QTCONCURRENT_RUNBASE_H
4 N) b4 l9 ], g3 d! S0 M/ y6 U0 }: x- }( f
#include <QtCore/qglobal.h>1 D- }, A' I3 g K: W6 _, \+ X
+ n) ?3 O0 c7 X4 h
#ifndef QT_NO_CONCURRENT
" F" Y0 ^' B/ E# W
7 }9 {$ i# W3 ^1 W#include <QtCore/qfuture.h>; ^& u" j9 |2 [0 k: M- H
#include <QtCore/qrunnable.h>
9 O2 i) y4 q! k6 m6 _#include <QtCore/qthreadpool.h>
7 p2 |4 t4 ?: W) \) I( c' E5 P! y- ?: G; o2 ?6 P9 p
QT_BEGIN_HEADER$ P. q: j, T. I4 I* r0 v
QT_BEGIN_NAMESPACE
: d$ L$ U0 T- P& K' p
" {+ t+ L; y/ k/ }4 O$ x& BQT_MODULE(Core)
* n0 \& z4 M# n3 \" P5 v7 e; a8 k4 G$ }/ w" A' o
#ifndef qdoc
$ V9 g7 `: O9 j5 y
. e, @- O) {( ?7 y4 b: Mnamespace QtConcurrent {
# m6 C# }9 @" c9 z8 I; X/ l) i! z
template <typename T>
' f; b; W( A! p4 O+ _* p( kstruct SelectSpecialization& L7 k/ {% |$ b" K0 p
{
" x# ~4 I0 `7 H" E/ ^ template <class Normal, class Void>
# L9 V) N. n# T struct Type { typedef Normal type; };
0 E6 y4 P0 C! }! W$ S* x/ i! }};
% U' E* U% v5 O `* v5 }' C+ ?' H! K( L- Z l
template <>
; G0 f9 ]9 F; [; Y# k" G% J/ M' istruct SelectSpecialization<void>
3 d6 h1 W" M6 r, Y+ \* E# B9 ?2 }9 Z{/ k4 r D& F3 j2 I/ O$ G7 m
template <class Normal, class Void>+ s7 ]1 y I1 s
struct Type { typedef Void type; };' x! F* R# u' [
};: k2 Q1 e: x! U: U
% k% p5 T* o" U' V6 o ^- d/ ctemplate <typename T>' E0 S9 m& w4 j6 p- C
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable+ [8 K3 K y* O) }3 n
{- T6 n0 w1 s7 v1 n* G# ?
public:
" a# }* t% I' W+ J; l6 A; u! v# @ QFuture<T> start()# p/ h# S* l9 p" z+ q
{: _7 o8 ]% b1 \/ }, Z1 Q
this->setRunnable(this);, U8 t4 O* `3 s8 U
this->reportStarted();6 s: o7 ~* q- |
QFuture<T> future = this->future();% I. R' l+ K% ~; S
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);6 Q C! [& j5 E, [ N. B
return future;! c+ H6 l+ R T9 n7 N# A# T. _& W
}; g( i4 ^6 |% u* F
+ E- f9 x1 T& ^1 Y& e3 N0 h$ K' y( g
void run() {}
( J: v- v: }! c; K8 a) n virtual void runFunctor() = 0;' X: `- t. m$ b) p- y
};
S& h6 l: S: o, m0 x* K0 T! X: K$ l8 u3 V, d7 ?% b; R
template <typename T>1 j# ^- u8 f( L0 ^0 D
class RunFunctionTask : public RunFunctionTaskBase<T>
6 r" U- \% c$ \' ~9 `0 q{0 x; O. j$ D/ Z9 A2 x5 w( [, B, C
public:
( k; t. f4 q3 N4 a void run()
7 L$ v$ ] D. T& m# O, F# i( ^+ [ {
% l) i+ ]2 a7 U3 p( z: ?7 `4 t9 o if (this->isCanceled()) {0 C8 ?) A# ^4 ~8 A3 b1 u% p. i
this->reportFinished();* M7 q) X$ b+ j+ {
return;5 [* I% s4 ]/ H/ R4 z6 g* \. G
}8 y4 C1 v0 G3 |- V4 o
this->runFunctor();
0 v; i! h, k+ K6 m this->reportResult(result);
/ t9 X4 D; p4 H/ F this->reportFinished();
# ]5 x4 @* l. t1 @0 Y# a& a }2 F/ N, n) b/ V* ^5 ^' }6 A
T result;
8 T! x4 K- {! _9 n% R};
5 b5 ] J) s3 V z5 }0 H" C+ I/ {; \" l: r% w" W
template <>
5 z( K) U' g! [# Y7 y: nclass RunFunctionTask<void> : public RunFunctionTaskBase<void>1 a4 k8 n1 _3 y
{
$ t- a: U$ f5 C3 C* ^public:4 }2 ?5 R( I- m8 h: R
void run()+ a0 a B& r, n+ E4 _
{- h& s4 `4 ~; x; ~# I; O- X
if (this->isCanceled()) {; d8 {& a/ H, b
this->reportFinished();' U7 {' \3 O6 F* g3 v8 a7 G m, q
return;
& h' b# f& j( d. r6 n: L }
- M+ R. k8 J! w: w this->runFunctor();# i& A; Z6 l8 a i, d. z3 x6 |% w
this->reportFinished();
0 N" k! A3 b* r }8 u0 C4 b+ U1 a7 o
};
5 E4 @- [, f1 D% R! t( i$ [) n" L$ }. \0 A2 u# _: j+ \
} //namespace QtConcurrent; Z+ F- C8 C' h8 C
^3 Z& F! B- K0 R4 }; B- l& z
#endif //qdoc \3 w5 j, t a2 G& |
. ?- U/ k% P2 M6 Z: Q: [7 R: uQT_END_NAMESPACE3 N, [$ \& D$ G- K' Z) p" w
QT_END_HEADER8 I# b, [4 a/ g) G
$ E) ^* \# S8 Z: @6 ~: |! R#endif // QT_NO_CONCURRENT `) W- J; i% A) D5 ^0 U% p4 v: N
: x/ \8 f8 D* A: k& K5 N6 k% _. Y
#endif0 c8 ?# F9 d' Y( B$ R' a3 ^ q
1 `/ t. b, e7 w# r4 A6 y |
|