|
|
我对syslink进行交叉编译到arm,但是出现如下错误:9 u( E7 d8 X1 {9 y
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'1 ~" s( o6 J" r. e& M9 V/ T3 H
. x: k7 ?, ^; u这个头文件内容如下:% E6 q+ d4 P* o; V+ N) m- V* ?
#ifndef QTCONCURRENT_RUNBASE_H6 O8 t. }- i4 ?3 i% Y! m+ A
#define QTCONCURRENT_RUNBASE_H1 s+ ^' P0 A) ~! a" {9 m
0 X8 [3 T9 h8 [/ ^/ z e% h#include <QtCore/qglobal.h>
' A4 z1 Q7 s! { p- j
( ^8 h0 X; O* U4 K2 g7 p#ifndef QT_NO_CONCURRENT
* \, D2 o0 f! o, d- Z
5 {$ y, m$ ]. t9 j8 ^' u+ n#include <QtCore/qfuture.h>4 H( x z& m6 D% l0 e, Z
#include <QtCore/qrunnable.h>' a5 L8 h/ P; P$ X0 ~9 \
#include <QtCore/qthreadpool.h>
, h7 d, P+ }7 s" R0 i- x/ a: R9 M9 E4 q2 O* u* A2 u
QT_BEGIN_HEADER( p" Z" u; x+ ]+ ^
QT_BEGIN_NAMESPACE
# Z& E0 W+ b% Q* l, D8 o% U
8 E" B A$ ~7 j; C0 F" PQT_MODULE(Core)
1 h6 B' m- M$ r& a: j+ J" {4 h$ l
#ifndef qdoc+ I- w C( t! I) E8 Y7 |" g
5 H9 T# }; c' w; _5 @2 N
namespace QtConcurrent {
( c1 n0 B3 R: R4 w8 o4 y/ Y
8 g5 p# e1 t: p& f' r8 Q+ Ytemplate <typename T>* b: h3 n6 b* h& ?, b" A
struct SelectSpecialization
" F9 E4 M. m' v1 ] d{
/ c2 ]& X% F% o K& |5 d template <class Normal, class Void>
% @- d& {4 T& ~4 [. j5 {, \0 Q struct Type { typedef Normal type; };
* H6 O) @/ C7 i9 j- E, [3 s2 Y7 {};* V/ B O! T9 I: d0 C
0 P: O8 g$ S {, q: [4 c P# B
template <>
5 p1 m7 C# E& y8 q M/ Tstruct SelectSpecialization<void>
6 ^; `. L) C% n" O; g, R4 T{
( y0 ]/ u2 ]' K, T2 J2 r template <class Normal, class Void>0 u9 u7 A2 m/ A1 e( M' A T
struct Type { typedef Void type; };
C9 S7 @$ T" n A};. X1 ?" k* q @, y% v6 X, m5 \
% Q' Y6 B0 [# |% M* A5 {$ btemplate <typename T># ]$ `& S9 t7 p9 w4 z4 d( n
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
. u$ a9 K. ], g$ s! {) W{
[% m Q" D+ F3 Zpublic:
. J) B: z/ F& ~; O( o* V QFuture<T> start()
- [1 C, r* X. c4 x {3 s E5 Y% j; N- U: f+ F
this->setRunnable(this);
& d9 U3 S; n: F# O7 ]0 p this->reportStarted();
. f) E1 L' W" I2 G QFuture<T> future = this->future();8 j0 k6 t6 h8 `, ?: `& D7 d( M/ c
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
6 e: u4 ^, {- g& n, \ return future;
9 ~" B, o+ `. k) f0 ] t }; @: `5 u' C* h3 i1 p2 ?
) @& w9 \/ R2 w$ a
void run() {}, r. u2 E5 s) b& u; r
virtual void runFunctor() = 0;6 Z1 }& E; N1 }" r$ b: |
};
/ A# p' s0 F$ J! l: B; b% J$ j, ^- J9 j4 }! P! I3 O
template <typename T>
, K% e. ?6 ~2 qclass RunFunctionTask : public RunFunctionTaskBase<T>7 E b+ L! F( p/ C& F" J
{& M$ \- j) W/ X; W
public:0 f, m u% R, |: _ A' Z L' t
void run()& ?& A \% O. Y& M2 _
{
5 [ q5 l5 K4 S8 G3 @' J$ [ if (this->isCanceled()) {, [# C e) g E/ p0 q" Y
this->reportFinished();
" b0 K6 X2 X' n. u return;4 j! {. V7 m5 _6 J# A' p s" w
}$ O! ^. P5 m3 D
this->runFunctor();5 \1 w) ^7 P4 w9 l) d# F
this->reportResult(result);3 Y% z3 E/ m. w8 o9 M- S
this->reportFinished();6 x( S. V9 p4 e9 J8 I
}
: g: R) X, d7 T* @- d; G- _/ D T result;
! E+ u, |. T1 f+ x: q$ z! l}; |! {9 c n2 s: C E3 X# ?; y
3 `/ `3 s) t! ?: W( X8 M) t: M
template <>
5 \8 u. c; ` M+ c' ~; Q* Wclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
' ^( S' o9 W7 W0 A( t g{
3 x: k6 M) e7 A: X" s+ Kpublic:
$ x, t' J! o N( k$ e+ B void run()
, U& s% o3 i5 \ }; y% S& i: l {
5 W$ x" M3 P& }+ {3 o+ X! X if (this->isCanceled()) {
# c" ]& ]9 O5 O" ?0 j: |5 ~ this->reportFinished();; [; p; L" O. n- b# ]
return;( F: w) u, a( V+ k% l' N
}; R8 Y1 n6 M6 c9 `! H% m0 o5 S5 z
this->runFunctor();' a7 H# O: Q, c5 `3 G. d! _
this->reportFinished();
* m) a2 _" R. k ^ }3 R: a- Y6 `6 K0 T* H) Z2 a' Z
};
, D) ^2 z3 h1 p ?: N- A3 m0 {
/ A' u7 M: Z' {} //namespace QtConcurrent3 u6 t! m# n1 B! c
& i: S5 U7 J- Q3 U
#endif //qdoc/ p( C7 l1 \; ~: w! }
U% r( J) ]1 V5 }, S( l3 h
QT_END_NAMESPACE
- V$ T+ A( m q, Z7 @QT_END_HEADER9 C4 k2 ]4 x$ m! g2 C+ o2 ^
/ S2 L0 ]9 t5 G! W
#endif // QT_NO_CONCURRENT
+ D+ I; ^. T$ k* K( d8 I6 p7 v
; h3 [1 |) ]( l( f$ B0 F D#endif
" X9 M3 y7 t, n$ f& j8 G5 X$ i, Q( x+ O M/ M7 v. f" H
|
|