|
|
我对syslink进行交叉编译到arm,但是出现如下错误:. F4 i) U: K0 v9 r" J
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter' m% Y: f W: B) i! O
+ c2 q W' s; V3 {
这个头文件内容如下:
0 a8 C# E% I: b' \5 ^, `0 C#ifndef QTCONCURRENT_RUNBASE_H$ v) {$ M1 i/ Z0 D; R8 M6 e4 S
#define QTCONCURRENT_RUNBASE_H
2 g5 J' ?" Z6 G
& N# [' N8 k' _' J- \- c( U/ ?#include <QtCore/qglobal.h>
, \9 s" }4 m% L4 {) s7 T1 L8 P. ^* n; ^
#ifndef QT_NO_CONCURRENT- x! y0 l7 q6 N' p. Q# V% y
: K! |9 d0 i8 R4 [. X: y9 L! G, [, y' A
#include <QtCore/qfuture.h>1 O$ p' V0 Q/ R" u. v' M
#include <QtCore/qrunnable.h>
2 t8 Q _9 {5 ], ~- L5 O#include <QtCore/qthreadpool.h>
- l5 ]/ j) j' Q" Y- l8 g" {2 x. a5 S# Y" p: V/ R# i. i# M
QT_BEGIN_HEADER
9 ]' y' L) p2 L. l$ AQT_BEGIN_NAMESPACE9 o0 B U+ z) o7 y7 w: z% G$ m5 W
" s/ r6 f2 y. _ L5 L
QT_MODULE(Core)
! V2 H& G% c4 S( q& k8 v( F- c, j. I5 D- ^- _$ l, V' d! J* c9 n
#ifndef qdoc
g, R }' u3 U( o! O* w
3 ]. G$ u) [: Z, ynamespace QtConcurrent {
6 ?3 L) I% {' H5 Y
! v5 o- M+ x3 t8 otemplate <typename T>
5 b1 G- j2 g2 F8 m0 qstruct SelectSpecialization; `6 j4 P! a) E$ x7 W
{
: R q* P: l9 g template <class Normal, class Void>) i0 ?2 ^( p$ V3 N' @. q
struct Type { typedef Normal type; };
4 _4 b0 b u' n4 `4 q& Z) J6 U};
1 P& b9 U. Y. _8 S+ l7 O& C! h4 t' n- M9 _0 k" x4 I4 c, a5 y' y
template <>. i' i! g1 a, a5 j! o5 v+ u4 [
struct SelectSpecialization<void>; @5 O! A* R) E1 J9 G
{' J; g3 O' D4 u/ K
template <class Normal, class Void>0 E6 N) B5 b' S( {0 p4 b ?' Z
struct Type { typedef Void type; };
# e8 R1 o+ B6 Y3 z};$ U) @' F! b9 s% f# b
0 z% d7 J; M1 ^: g/ X$ i6 Ctemplate <typename T>
, R9 T0 z9 t- Q7 V3 r5 z$ _- gclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable6 J$ }% s$ t1 u# p! B6 w
{
* W0 J+ r. h) U6 Q {9 tpublic:8 u$ D* ?" R L5 x# s# C c
QFuture<T> start()% v, x- w3 p/ K0 J7 d+ Y, M7 Y
{
$ d5 l. S+ }5 M9 f0 f; c this->setRunnable(this);( [1 e. I5 J( P1 k+ ]4 M# K1 x
this->reportStarted();8 T$ z3 n! i* r+ o# ^; B; B
QFuture<T> future = this->future();
6 T& y9 ]( T+ O6 C QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);/ W8 o8 z: E8 N2 a, M7 y
return future;! x$ [2 u' q/ E) y4 h# A3 G: r
} v, B, i* ]) ^& I+ Y
+ V9 C5 \" Q7 s: C3 @9 M1 K7 G void run() {}
& ^' r# u8 l9 p1 c- a* | virtual void runFunctor() = 0;5 @7 l+ F0 z7 \( x7 o1 _# y
}; P( H6 F! r( X+ q( i
1 u3 V4 u/ u+ a; m7 z8 V
template <typename T>+ {. K+ X7 x2 s: n- }, `
class RunFunctionTask : public RunFunctionTaskBase<T>
3 |. e# ^0 R$ z( W% ~& g1 ~0 S$ f{
4 o! F, k0 p \) _public:: L8 d" ]1 |& Z, A) E& Z; B6 R% \- m. W
void run()
# N8 s6 H2 q _5 M5 a7 F. {: ]) m {
# @" n" v( c# `. J3 B" X K1 F if (this->isCanceled()) {
% `$ l/ m8 L; t this->reportFinished();
/ p: x% I3 X; x, D/ X5 h return;& V/ _# |* o& h( ^, ?, c
}1 P: T& V H& Y7 M' O* u9 W
this->runFunctor();/ I0 k; Q& q0 }2 j$ Y
this->reportResult(result);
9 o J# }* v8 Y( {; d1 X this->reportFinished();# m0 v/ a+ H7 _+ H& M" |: Q8 e4 O
}* o+ c9 Q0 t% q; T0 H
T result;
6 d ?2 J0 `/ c. }2 d3 i};
% X, b" H) R( O; x5 p
7 ?6 v, }/ a+ _; T- {2 mtemplate <>
$ L8 l- P' |) m$ p* pclass RunFunctionTask<void> : public RunFunctionTaskBase<void>; p. t4 u9 H, R& t
{2 s. D6 c+ O# ?+ I8 v
public:" T) p; i, i9 q
void run()
! W0 ?% o! t7 r' j9 j1 Y5 D {
. W) m; @' K8 F" s if (this->isCanceled()) {& r" J0 V1 C0 w+ D2 j! d, }
this->reportFinished();1 `- T( m9 L' V. e8 m7 o' G
return;9 c" W3 P+ o4 \, K/ ^. X0 k
}
" X/ S* ^+ G# f this->runFunctor();
: T/ b1 {! t* c3 I- c this->reportFinished();) g* o( t- T6 T% Q+ u! w
}8 W# _7 P' C% W% C; I& v" d
};
. |( h* \1 p8 t) U+ I$ k+ U( k# o6 \3 r
} //namespace QtConcurrent- h5 @! R. o" g/ P, y" i
) Y, c* K- P/ h
#endif //qdoc
3 K$ V9 }+ \& n9 h2 ?0 j j6 e" O5 @/ E0 |% E* o/ s0 I
QT_END_NAMESPACE
# d# `+ W* h1 I' N. x2 g, OQT_END_HEADER( C( B* ~0 X/ R& ^$ m7 x, w
6 R$ g. n. ^! H6 N6 V1 O4 N
#endif // QT_NO_CONCURRENT) y$ f! z$ Y* I: r: m
6 g) i5 x- z _& T% m; M1 B% k) s i#endif
8 n' n0 G: F( b4 l" B7 J0 F: _) f& T$ }7 g3 @
|
|