|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
3 p. C. S4 X3 c2 X6 |4 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'% L* c$ ^, j1 W$ W% u ?: P
! v7 d3 w$ ~; h1 B8 S1 ~/ \7 }) e这个头文件内容如下:
( U$ g) g( q, W) k#ifndef QTCONCURRENT_RUNBASE_H
9 F5 H/ B* u7 v0 |( a#define QTCONCURRENT_RUNBASE_H) s5 k; }: L, [4 J* H2 T
; |. ~) X& C! `% W5 q ^; H( S- I#include <QtCore/qglobal.h>1 ?: y ~& R6 W& @2 I
& f1 w4 {$ U [1 L#ifndef QT_NO_CONCURRENT
8 j% T( j3 P- v5 [! [1 y; K/ c% u# K9 d3 K
#include <QtCore/qfuture.h>' l- Y! `9 u! h1 L4 \! z0 i
#include <QtCore/qrunnable.h>
! `8 ~) G# x n" F5 ^( {0 ]#include <QtCore/qthreadpool.h>8 m6 H5 l+ v7 b- R+ i& Y
* @; d$ K! c, J- R
QT_BEGIN_HEADER9 Y8 H( P% x& @& M
QT_BEGIN_NAMESPACE
4 @2 V; x" l: g8 x* Q. \* e' X8 N0 _4 T* f& V
QT_MODULE(Core)* d, R( y! x4 r! R7 ` w0 h
0 n: F5 P- {! N5 {2 |
#ifndef qdoc6 q8 B1 L1 [2 t
) q6 U" l& u4 e* R& G Tnamespace QtConcurrent {
x9 @) u; H2 D0 ]. h8 j( l' v
* B, F3 M1 n$ |( F: Dtemplate <typename T>' E! B4 m" n1 o. z% q+ u2 e
struct SelectSpecialization+ }- d b% H9 s2 R
{
) ]5 j7 P P0 W/ N I9 a* }" ~ template <class Normal, class Void>
3 [9 \0 {8 w: E$ N$ p" @+ b9 d2 J2 N) g struct Type { typedef Normal type; };
7 {8 R$ [3 F; R* }7 [) G W};
! k3 o( w3 ^$ Y8 i" I0 J" P( ?( f+ `3 F, p, f) d6 o \; Z
template <>. [" V0 i5 i" W: m$ D
struct SelectSpecialization<void>
% C, I) [. o3 y. w6 f) k{1 p/ }% i4 W1 M: {6 m$ g" [: c
template <class Normal, class Void>
7 r! C' ~, j" Q struct Type { typedef Void type; };
9 P, e8 a+ J0 \ `4 l};& u6 D# P1 W! _
9 z: j; k, J$ m, ^7 `5 J0 C0 [template <typename T>4 H0 O/ S; D! i6 l8 |6 G: {( s$ l
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
7 |% Y0 B6 ~0 O% Z& L/ B. z{7 g' `7 |$ }8 D4 ?7 b
public:' H0 R8 t* p6 `( \
QFuture<T> start(); B! s+ k3 f- I; M9 u2 ~4 |
{( I& [" e Q! S+ ~; a7 ?7 N/ l
this->setRunnable(this);
9 K0 d( I- `% g* t2 v this->reportStarted();" @1 ]8 @( Q) P7 F+ }
QFuture<T> future = this->future();+ ]3 M5 R( S" _! T! T- M+ s
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
8 D E; t* [( e; | return future;3 X: e5 ~' u7 X8 {8 m
}
0 \2 \% I4 T, q( _" [! a# M* N1 b- Q
void run() {}( ]$ u( h5 G% }/ S! \+ S
virtual void runFunctor() = 0;+ q# F( b E7 E- _& M
};
6 Y b1 i( ^1 a4 L9 h% ]* T" n) Z) L [& `* I& M; m. h
template <typename T>0 @9 U; Z! O$ F1 f
class RunFunctionTask : public RunFunctionTaskBase<T>2 L8 X. U- y. v, Q5 v& v0 n
{
0 H; \) ]5 \; Npublic:. i. Z+ I' O3 V2 l5 h$ B* B* R
void run()/ Z/ o, p& u5 t' b
{2 {( \1 |# i1 y4 @# _% B1 R
if (this->isCanceled()) {
# d: p* p1 o* f+ R: G2 Z$ O% p this->reportFinished();) \8 s. {0 L) }' t1 s$ F" g2 J
return;8 T* V* D" X& _' I; G7 K
}' W# E1 J. _0 ^: I
this->runFunctor();7 w7 @' m2 ^6 S) |& B
this->reportResult(result);" ~8 Q' f+ N% R7 E
this->reportFinished();
7 W4 {' B! J) b% R7 m; f }' e' k1 l6 a* G" i- Y7 N
T result;
9 k. T& h# s, d+ L};3 d! l! p6 x- t& \7 k% I
1 ]$ Q0 _7 O# s% |3 ^template <>! @' W* \6 Y. D3 L' a* [0 V( `8 e
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
: y2 a0 A$ d: Z: S. Q{& p5 L9 g" @' f
public:& X# r6 }' J1 V" q
void run()
; O8 o9 ?! ]3 }1 W2 W& C8 t! b6 F {2 z2 D, I: v/ A n$ y9 h
if (this->isCanceled()) {
- x) _1 W; A% g8 N9 g- e& F' I this->reportFinished();/ [' V- u3 V6 l) U/ {# @% G
return;
9 O1 b6 }! G1 p0 l+ a. a }: O/ \ B4 B9 q& j
this->runFunctor();
; m3 {- h3 Z. G, v this->reportFinished();% G* k8 r7 d1 U
}
& z2 W0 \) X; a l+ C. G) A};
, ^/ ?( b p$ _8 ?3 `+ L2 K9 q2 t/ i8 O# a' O' g
} //namespace QtConcurrent
, ^3 f2 Z+ x' G
, P; |% a3 S6 R3 t' F, ]" b9 K#endif //qdoc. W! Z& Q0 y+ z& t
: J& n8 }& J w _QT_END_NAMESPACE
' C* @; [* r% Q" j$ Q& z. pQT_END_HEADER- f7 H/ q% F+ {' Z- Q) X3 a
$ t3 Z( s; L# |( Y- Q6 j6 u#endif // QT_NO_CONCURRENT; M% k0 g+ B G6 ?4 q
( g8 e6 u& `9 f- R
#endif6 V. z/ t+ M" ?% X2 ]
- E. {' V, |! Y, [ |
|