|
|
我对syslink进行交叉编译到arm,但是出现如下错误:! t5 T' S* v9 F% z
/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. K( @5 B4 ^" U& p3 {: X$ Y8 o
这个头文件内容如下:
3 K' f# V# ~4 r9 \- v& ?#ifndef QTCONCURRENT_RUNBASE_H6 m4 Z) ]1 a$ K. K
#define QTCONCURRENT_RUNBASE_H
! U9 Q; I1 A& p! R. L0 e# m! o, M) h/ g: S! h
#include <QtCore/qglobal.h>
. v5 h6 n' N% u+ M- q
8 a8 }! \& F% b2 _#ifndef QT_NO_CONCURRENT
# q; l' N$ I$ E# |; r
5 o5 w" b+ r0 C6 T#include <QtCore/qfuture.h>% @' W( G# P2 P! z3 ? d) }- }
#include <QtCore/qrunnable.h>
- |$ g8 A1 }- d0 g- |, O& g+ J#include <QtCore/qthreadpool.h>
9 I6 L, {) V2 b. U5 W$ c$ e4 E6 s
+ }3 O/ l h; k: [- gQT_BEGIN_HEADER# N1 C& l9 O1 l) z
QT_BEGIN_NAMESPACE6 P& O/ j8 d8 H" v P u& _1 L
, \& I J. F4 R- uQT_MODULE(Core)
+ n) \7 ^$ `+ ~) j# }& D; v- J: p; _, K! v. \7 E8 {
#ifndef qdoc' W" \( R1 {% w8 n, s8 A5 J
3 ^2 O# m! P3 C* Y& Z' O2 F9 `namespace QtConcurrent {3 B. O/ A0 x1 b2 S8 \9 D
. V% {) o0 ?* a
template <typename T>8 X( x9 f. g- Z M* {4 h, y8 Q7 G
struct SelectSpecialization2 F( T [ O& u" h- S" {
{
5 c# i, s4 J# X" P0 S$ O template <class Normal, class Void>
" r" r9 K% s% Q5 D9 V struct Type { typedef Normal type; };, d4 T: K$ t+ c6 J( x5 F
};
! b) S6 k, ^# s; o- D8 Y5 ]" B& R5 {9 i- [# ~. p7 b
template <>' m) Z/ }+ w5 K- Z
struct SelectSpecialization<void>5 J4 M# Y$ a% ?" o
{
; F9 U# t+ F7 P template <class Normal, class Void>0 t$ G, `* d/ N% q
struct Type { typedef Void type; };! F: ^ s- w a! x# X K/ v
};7 O/ ^6 h6 z: O* V' ]( L" [! C
! N% ~! Y7 v' J6 j2 ]3 t
template <typename T>
$ u% q- R1 D5 W0 ^# Uclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable' Y. U8 f: h( g$ y
{
. _+ T6 ^1 _( T1 Z. mpublic:& n4 I6 u4 `( P3 c7 u4 o" I6 }9 w
QFuture<T> start()
# ~2 q& k2 G7 b" m2 f {6 v8 w' `2 @/ p) ]- |
this->setRunnable(this);
% n; q- L" m3 _9 @4 D this->reportStarted();! ^6 T( k+ W+ Q, i
QFuture<T> future = this->future();
: q: h' N$ r7 @4 C QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
0 d7 P2 J7 Q, |# l return future;2 q n, U# N0 R, L
}
9 I% R9 e* w) a T1 D- h# v) m) [+ r, Z. K, U, E
void run() {}
6 ]; @0 r0 f1 c7 S) [3 U virtual void runFunctor() = 0;
" E3 j3 n' k" o0 A, E6 V# o% G2 X};
~# X" `+ A$ s I6 o4 {+ K f! i/ v' R
template <typename T>
3 a( o7 g1 R$ L Mclass RunFunctionTask : public RunFunctionTaskBase<T>: A2 f4 s- R# P2 @ @% H( b. y
{
- S& ]( P6 |0 Z" B4 I0 t! ]public:
8 h+ d. M7 |; `% a* |( l- Z0 w void run()- _) h( Q( _5 q! C) p6 @
{
; J3 o/ u9 B6 T: H3 \" O if (this->isCanceled()) {
, y5 G2 Z0 O$ q: ]) Z k this->reportFinished();
, X4 n) q1 q j- S0 ]8 t2 b/ F return;
, v# `" M: X0 z1 [1 o N/ p }+ y2 ?9 P" j0 R T* ?
this->runFunctor();! x- ?% R' Y! d- ^% w1 v+ b
this->reportResult(result);
~' P/ g4 Y, r3 ] this->reportFinished();
a) a3 j$ ?: ?9 S5 i2 L0 C5 d }
. k/ g8 a' Q* _' v T result;* T; L: B% F8 B% Q1 W
};/ s& \4 m6 l* U& p/ ~0 F3 d& C
# n/ {8 {) k; f. {
template <>
2 T/ P# H! l( J0 h2 B4 vclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
/ v/ w6 `4 X) w, ~{
* }7 M8 o4 A: o; h5 _: w: jpublic:
0 k6 e9 X% P) ^0 W' \' P- T% Q, B- H void run()7 a1 ^8 ~" x0 X5 m
{% p. m- c( |# r6 s) F1 P4 b
if (this->isCanceled()) {
: v3 m' e( e Z: u this->reportFinished();2 J# p- G* w9 G r
return;1 o2 Q& L: V/ s2 p" k! E
}
' I8 ?9 u. J% o3 q8 ]1 H- H this->runFunctor();) K9 z% J. p& S$ c _# ?/ Z5 ^8 ?
this->reportFinished();+ i* H) C% c- J; a9 Y1 h4 b
}6 D$ N6 [2 {; ?' W6 ^: R- |1 K8 T2 }
};* B1 x% E; R5 x$ r. t
+ |% E O" B8 g$ u. \$ Q. j
} //namespace QtConcurrent
6 d( |* y2 x+ Z9 ?8 Y) z4 p# Z" y) |! r0 N0 @8 h/ e5 T
#endif //qdoc
7 }4 w& u" v4 d
4 Z/ {- z1 { y0 ]QT_END_NAMESPACE
6 f& ~$ r% m& pQT_END_HEADER
5 ~- ~+ _8 @! j2 J4 J0 v
5 H0 m: m# U# M( t' T$ X' T! w+ N' A#endif // QT_NO_CONCURRENT
) o" v' M9 {. g4 a2 x/ j" T1 }3 W# c/ q) b% a# j
#endif: g( l. }- y) U8 V8 K
1 ^& U- F9 {: i2 x+ ~
|
|