|
|
我对syslink进行交叉编译到arm,但是出现如下错误:* D, O7 n5 P/ o8 x
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'! d$ V: }) M9 I9 }" K
. k; R: V! D. x `6 _* r: H1 N; n
这个头文件内容如下:, @2 y/ n3 |! [4 C* X3 l
#ifndef QTCONCURRENT_RUNBASE_H/ P& g5 P$ Z3 j C/ G1 t8 L" b
#define QTCONCURRENT_RUNBASE_H
& u* W- Z J$ |7 @, J/ z# N$ n; R/ |# A
#include <QtCore/qglobal.h>( c$ a% Q4 X4 v3 U3 U
% }( z* _. b M& o$ A* b
#ifndef QT_NO_CONCURRENT
3 s! |4 r0 _+ x( \. E2 o$ ~$ k/ T' T6 D) Y
#include <QtCore/qfuture.h>1 }; N$ Q% }; N( n
#include <QtCore/qrunnable.h>: o$ U0 S+ T1 o. B$ ?1 c2 o5 q
#include <QtCore/qthreadpool.h>
7 N6 z# L7 X! S" w0 w5 a3 B8 ~2 k% f# S$ W9 U
QT_BEGIN_HEADER: e$ D7 u! H2 O' F' S
QT_BEGIN_NAMESPACE+ g2 O ]# O7 K& O$ |/ R
# X! B6 O6 Z" L8 U$ \1 E$ R
QT_MODULE(Core)9 X. q @2 A$ v3 |7 Y
; j% u* r) Q$ {$ z#ifndef qdoc- w4 D% T/ M4 d, ?& q
2 Q& u0 X/ \7 Z4 {( r- Knamespace QtConcurrent {
2 w) ?1 V% g$ R/ R1 }7 F$ a" t1 R1 x' L' s* i4 ^
template <typename T>6 n3 ]1 Z# A' c/ [: i! f: }1 g' d
struct SelectSpecialization/ v$ Y8 S1 m# \8 ^
{
9 x- B! A C) O9 s, n" |# }: o template <class Normal, class Void>/ d5 P5 G/ a9 l* g# B e- {( s
struct Type { typedef Normal type; };5 M) z; j5 H0 L+ U8 k
};
; u4 A1 S2 u( ~. [5 }: Q5 U
7 O* j( a) v, ^9 M' Gtemplate <>
1 O: k( x" E, {0 bstruct SelectSpecialization<void>0 `& X h% V- a. x: |! A- c
{8 K# y7 i; Y0 ?1 f
template <class Normal, class Void>
+ _! T# s* V; D# l7 H8 U, ]. X struct Type { typedef Void type; };
8 `# L( e- ^; W) B& v7 O. E};
4 s/ K. v, T5 O9 V2 v7 ?+ i+ | q- Y( y7 v0 X: W7 t( X) K$ U
template <typename T>
6 Q$ k0 g* e# D! V$ ~6 t4 g6 ? @class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable) s7 Z; x+ m% [. J* K4 X3 {0 s
{
9 |$ C% p7 I8 [/ |0 npublic:* x4 n9 l }( j
QFuture<T> start()) h6 k8 ^1 N- [, @9 ?
{6 C A! k) P1 K( v' P- K5 Y
this->setRunnable(this);
* S5 f8 a) M5 U4 h this->reportStarted();# [4 {, K4 R1 L9 N; L. M
QFuture<T> future = this->future();
- Z$ M" g3 \0 P: u! L) b QThreadPool::globalInstance()->start(this, /*m_priority*/ 0); U0 L4 c( S' B5 a
return future;, r' p: E- i4 s1 C) P/ k9 P
}: ?! Z0 x8 _2 }1 Z2 G
; U, \& L/ Q# J void run() {}* U- R3 t8 q5 l
virtual void runFunctor() = 0;# K$ k9 S ~8 ~7 |1 x( P' T% j
};
' R. ]" @" P! Q9 g6 O: Q' v8 z: Z" D: q8 t
template <typename T>% V# r1 e. _/ I+ X) [2 O% {$ J
class RunFunctionTask : public RunFunctionTaskBase<T>6 d5 z! i; Q6 n7 o6 ~3 Y
{
% l) R2 Y7 t7 U; epublic:- V+ |9 X8 i$ i) e% k1 K3 \
void run()
+ | o2 R1 x5 z1 l0 h1 N {8 i3 r Q1 D+ p6 A9 `, H
if (this->isCanceled()) {
+ f2 Q# l2 b. O this->reportFinished();% o2 G O: A; Q. C$ a
return;4 a! p& h: I, r! {2 Y: R1 g1 z7 U
}
( i' Y, K$ ~ a0 B4 ?* n" p/ v( ] this->runFunctor();: h" T4 t; w; ^; c9 ^7 t w6 k# g
this->reportResult(result);
! b2 g q$ v/ b0 g this->reportFinished();
# V$ p* O6 e, K- k" {, I }0 h; ^' w% x9 h1 @1 X) w/ y
T result;
, ^9 i$ v: Y. _! ?- ^};# F, T g( P' o1 W, m
# E' }% K! o/ qtemplate <>4 n! M7 K: e: o r7 M1 [. Q1 H
class RunFunctionTask<void> : public RunFunctionTaskBase<void>6 _) f/ c: N9 p, i
{
, n5 H" E6 u2 spublic:' y- [6 ~5 L1 x% s: T
void run()
9 q: d: B& e9 X- s {
0 ?% |/ X9 k8 `7 _ if (this->isCanceled()) {8 ?4 |- t8 W8 t* X3 D& O Q
this->reportFinished();% ^: z6 Y7 Z; Q) {
return;7 m; D2 g- k7 f6 h* B1 C/ t
}
. u# C' o9 Q: N" g this->runFunctor();
! z/ S2 {* f9 a; y7 | this->reportFinished();- K; ~: @ E6 J% t
}
9 {. W/ ~7 X% a+ W& ^};& J+ L3 i6 V& T! K
& v8 P* H, C! L( ~$ m} //namespace QtConcurrent- [2 B" g# T' D4 w
5 o. |5 p) `! l- a
#endif //qdoc
( J y! E) U0 M6 Q3 x
) C6 N" ?" J( X9 D1 T" XQT_END_NAMESPACE; H$ d5 H) o/ r* n1 o8 a; L# M
QT_END_HEADER
* [, a {) Y. h4 e B0 h2 s& f. A2 H3 I5 w
#endif // QT_NO_CONCURRENT
; }4 z7 Q7 j% g' z+ y: c' G3 d" b: r3 H5 p6 v8 h
#endif
& d) q; n3 i8 l7 a
+ i7 T* v% l; Q9 ?% n |
|