|
|
我对syslink进行交叉编译到arm,但是出现如下错误:2 g' Y7 Z' H6 Q9 x* V
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'7 J, V4 U' Q0 k4 f: }% U O2 {
6 D! J6 Y* T& ~% v: n/ h" A这个头文件内容如下:
1 s# d; z& v* p2 n#ifndef QTCONCURRENT_RUNBASE_H; c/ S5 B# y1 i* Z1 i9 N
#define QTCONCURRENT_RUNBASE_H& x1 {7 A- K5 J) h* M
, M3 `. g6 w0 D6 p% m#include <QtCore/qglobal.h>
) E* H- x! E3 x: e$ t% b, A1 ~. H" M; I; H
#ifndef QT_NO_CONCURRENT
* W3 A& m( W: c- @/ K3 d% T( b# h) @
; \ M6 _: s' E8 Z5 V: ~# {#include <QtCore/qfuture.h>
{6 j; Q& s- d#include <QtCore/qrunnable.h>4 z4 v: B0 G% L6 p- V3 h
#include <QtCore/qthreadpool.h>
* Y8 n r8 a# l h
6 ^: j# [1 _4 DQT_BEGIN_HEADER# ?0 C- t: G" A% o6 ]: C( K
QT_BEGIN_NAMESPACE
9 ~/ X3 r! S: y" M) ?) Y: p4 b5 ^, L- P0 t9 f* Y: g( j
QT_MODULE(Core)
$ I! v7 N6 u) H0 x
0 b5 m9 R2 A- J+ I6 {; ~! B: v#ifndef qdoc9 X0 ^8 p( P' ~3 c9 ^+ F
5 C# r* V4 @ {
namespace QtConcurrent {
: V. f8 L$ ?# }3 S" X3 G
0 N- u) ]3 m0 ]+ Y0 Ytemplate <typename T>! `" m' A ]" C, z- U; N: o- c
struct SelectSpecialization
' U4 }! s0 o1 c) Y{
$ z- F1 `5 B" [* [/ V template <class Normal, class Void>
( R, n) n. v7 [; G5 W struct Type { typedef Normal type; };
$ x- Z' T* X/ e4 n};
: f0 l X, C! `2 t2 X: P- i' R [$ d8 K" ~3 a$ i* G
template <>* f9 M% G% ]- o( L6 P3 h: {
struct SelectSpecialization<void>
9 S& h0 A) D& D{, T1 \8 J9 S$ d" E5 S
template <class Normal, class Void>
' ^7 U5 U! g; U( T2 a struct Type { typedef Void type; };7 ?' R3 e1 _5 Y- E! D8 C
};
4 D+ R. }& @, z) c- E9 G
1 G D) X& m; f% G, L# rtemplate <typename T>
2 j5 v8 c; g& D1 Q1 @- sclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
+ d! H& T) V# H{
7 C8 o$ J {3 M" }public:$ P A7 ~' Y5 U, J+ _7 P
QFuture<T> start()/ H7 l+ o& `- G
{/ f& e$ d* s- S7 s
this->setRunnable(this);
) d' y& i6 G! H( l6 e this->reportStarted();- u. s: @' P& p4 i
QFuture<T> future = this->future();1 T8 e5 ~" L0 `! f
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);" ~8 U W, E. P. q, E- A/ K% T7 f- z
return future;; B6 T$ }& Z' I- P% d& f
}4 s+ u- x5 m: S
2 d8 I$ B2 h3 S9 x, h% G
void run() {}
/ Y5 G; m5 q# o d virtual void runFunctor() = 0;& o' a; x; S; w$ g* X
};
( l( G: P- G9 }# o% O/ q+ l: `
$ `2 O* p3 e' x. [ ztemplate <typename T>' Z/ J T, X. t5 m& q% y$ M* [! \
class RunFunctionTask : public RunFunctionTaskBase<T>
! M) b. G+ N) E! z3 w{3 @. ^, |1 z3 \6 l' Y
public:
5 G9 L8 [5 F2 i" g2 T& M2 {, K void run()
" E% Y2 G) |9 R7 b4 y, F {
" k B8 M$ {" Q) x: q if (this->isCanceled()) {1 T. Y' l6 n! c; D& W3 {& ^! b
this->reportFinished();
. z! i8 g+ G; K% N) o9 ? return; ?# f9 c5 i, m5 T) C
}
4 F2 ]" g0 B. ?2 i this->runFunctor();) c& d& u# v6 B S0 v1 x" W ]4 X4 p7 l
this->reportResult(result);3 S) M) ]- t1 c S
this->reportFinished();
% z9 S! \. c) ^! x# p }
. e) J& |& T3 ~7 r2 ]5 e1 |, e T result;
1 y1 [3 c/ \9 K! [9 M) w) l0 U};
0 o% r" G+ ]2 S9 C G) X
8 P- K" y; a5 G' E' L! |template <>
, J: m- j B/ ]+ C9 Dclass RunFunctionTask<void> : public RunFunctionTaskBase<void>$ U1 x8 f8 O; V9 q u! T6 b$ ?8 Y: x) x
{9 L' k# ?; P- h
public:
; F; T% j4 m7 S0 E( w7 d( I- F void run()1 H, g2 X/ w1 p ~
{: L1 B r! x: d: q" c
if (this->isCanceled()) {
, w+ a9 I$ e3 I# {9 B this->reportFinished();
) z( _& H M0 l6 R- C1 k return;
: ~0 t* x7 O+ X+ b2 A5 l3 q4 i- w }
# V) S* Q; j5 r) z4 Z this->runFunctor();
' w6 q+ @! z! g4 v; S( N8 D this->reportFinished();$ q }6 j# d, L5 V% {
}
8 n% v8 a4 a7 \; ]1 }) q};, e6 q' _* I* _4 ^$ S
7 f: r) Z! ?; x% I1 _( z
} //namespace QtConcurrent
3 p6 H b0 d5 g6 t6 q" {+ U
! Q$ j l) v9 M* B3 g; H3 S* B' a#endif //qdoc1 d; q) S" E' l+ s0 L
: V4 ^+ H/ D, [
QT_END_NAMESPACE8 Z2 D% B6 ^- ~- J
QT_END_HEADER
3 n" D/ B! U# V" p" X5 Z5 G: X" x2 B& J$ P7 L7 D4 E$ c
#endif // QT_NO_CONCURRENT
2 L& M5 ?# K" ?4 u7 o9 p6 S F# W2 r
#endif
& z- O! k5 ?( Z3 Z
" ~" G) q i: j- W0 ~0 U8 w5 R |
|