|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
' W% f, z4 ^' Z7 ~, m/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
+ ]4 g! f% {1 d& Z4 R: I. F- N0 R) q }$ C- m$ E
这个头文件内容如下:
3 i6 j2 f3 K6 E+ e7 e#ifndef QTCONCURRENT_RUNBASE_H
7 n" T% {, S9 W" a# F6 G6 }9 r: ?3 p# V#define QTCONCURRENT_RUNBASE_H* X. D p% G8 i6 @+ N& Q: f
5 o6 E7 i, O6 `' v0 D5 \) e3 d, L8 Z* O
#include <QtCore/qglobal.h>
' ]1 c6 y- k$ W6 t. D) K3 U+ @
$ x: Z; ^1 E$ j6 R( E2 K) E#ifndef QT_NO_CONCURRENT$ ~0 v# o- @; E& j9 C* v; w: |
# [0 a! o# j! t#include <QtCore/qfuture.h>
2 U( ]) U$ g! W/ T6 p#include <QtCore/qrunnable.h>3 O8 I, n& ]9 R( k: H% y
#include <QtCore/qthreadpool.h>: R5 p1 A! t% o2 T
1 T! W0 Y4 R' {) |/ s" E" r1 z
QT_BEGIN_HEADER$ R( h! y0 K% k' |: a
QT_BEGIN_NAMESPACE
v; n0 t/ W W, }6 |
% I j3 c% i& H$ KQT_MODULE(Core)3 t8 S5 T8 o8 ~
) W0 N8 N7 r/ i8 `/ o2 M- K1 k
#ifndef qdoc
6 |% C( u2 O6 d+ L5 R6 B7 ~ `8 `6 v# N
namespace QtConcurrent {
]# }2 O( _" X2 T+ v1 }6 z' C) |9 ]& W" _
template <typename T>) @, I6 G2 J& M
struct SelectSpecialization% M( w- M' w7 t; m: n! a, o
{& o1 `) V! J& Y, ~
template <class Normal, class Void>
& W% V; u& f# P5 e struct Type { typedef Normal type; };/ a/ K. O. z& h; v7 V
};3 M/ e6 E( L" Z
7 |% k! X. s6 q6 [
template <># i, A" a4 S2 `2 J: Q; j; c
struct SelectSpecialization<void>
' u1 y$ h9 R7 F# y{
! _0 W; Q) I( [# E) T9 y$ \ template <class Normal, class Void>
3 A+ J8 \" O j0 [2 G) E struct Type { typedef Void type; };* V8 V7 U A( \
};
2 @' Z2 [% a E( K4 k4 y% u+ r0 N! x+ b2 H% S1 u- k6 L# a
template <typename T>$ B% ]7 q1 m, L. h @
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
& @- i l* o" \. d{: s9 }6 X; R6 P( _
public:
/ s) W0 K- F9 O1 [ QFuture<T> start()
. \& J9 O: t8 T Q; t3 V2 |9 \ {4 ~& P/ `9 Y: } Q0 F9 y
this->setRunnable(this);" n5 n, _) M1 K( I
this->reportStarted();
6 C8 Y. K7 C$ u' E+ N' z5 M QFuture<T> future = this->future();
5 M% a$ n9 i2 u: E7 ~ QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);; p% u" d1 o( e7 t
return future;
+ h: O6 \( x( \; F+ @) | }6 Z8 g+ X6 l( \2 B3 g& L
( W+ f4 B& h J% g$ S void run() {}
/ O$ M4 n1 H, y X virtual void runFunctor() = 0;' Y+ O- v. N$ [" U G) y
};% P7 i5 |: s0 j: j' `5 r
/ w8 P* }- g) k6 h2 I
template <typename T> E Z( b- j8 k9 e2 ^
class RunFunctionTask : public RunFunctionTaskBase<T>
7 V* [0 [' k0 J7 I1 {2 ^{: v# a' N1 \( v; B' {# Y: X
public:1 Z! n( T* f4 F" r- V! X7 U: u
void run()
+ o' Q. }/ r% j) R. k% L/ \% j {
" v, F' E z. _$ R if (this->isCanceled()) {
% f2 p# ~- _. ? L6 |7 T this->reportFinished();
& g% d1 N% z2 f* b- A4 i( X! W; I return;
# U/ f% Y! a+ ^ }
: @$ L4 N8 `$ M) t# e/ l3 Y1 i this->runFunctor(); v! Y/ p1 l$ t6 D- y# B2 @: ?
this->reportResult(result);+ c- G' F2 ^0 l+ v; V
this->reportFinished();& O. G0 O% e; R4 u( o! l( z% m( I7 |. R
}4 ^! s5 l# y5 U4 _5 Y- ^
T result;# j: Z8 Q* S. t; }4 q
};
3 E) I- n1 u' L% `; g( k* s h6 O( A* z" `2 N, p; e, n; ?, B7 ?( q( }
template <>/ G! p6 C; P8 w
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
9 `' {7 s, U, L- v{* Y, M( d' I* p" p
public:
, ~* U; j" q( R void run()/ X+ A) ~: A2 {" [/ B6 v
{
( c. W$ J$ ]% u8 d2 h5 [" h) T if (this->isCanceled()) {
. X4 J! W$ J( Z* c' U. a this->reportFinished();
4 T" {2 j8 D1 G$ s7 B return;+ f& i$ N# Z* S, x6 Z% B
}) {* _; ]/ U7 V& v! X
this->runFunctor();0 g, o5 J1 w* F7 ~5 A
this->reportFinished();, a& X- s1 a B/ P1 k2 i" ?
}$ N# p& m" A; {. G* l, I" N
};
* I% e( ^ s) F4 _0 {, D% k& T/ c, P6 s/ R2 N8 H; ]
} //namespace QtConcurrent
/ b( Q; |* G( L/ _+ G+ N5 o. m$ J% `. Z. F: Z4 u, d. N
#endif //qdoc. j! `9 Z. A# U
# C" b2 A0 Q/ J- ?: L7 i
QT_END_NAMESPACE+ j7 d4 I8 z8 F. u$ N" t1 E u0 J K
QT_END_HEADER
% w% N( ]* H& i$ [ Z+ K% p4 k. R, }$ F: [' q
#endif // QT_NO_CONCURRENT
" U6 {7 B' K y' K; T% I: `9 {2 [8 \2 ^) W! N ~) L# M
#endif G+ D3 P# h. q7 N& K2 n
' s u# }3 \5 g |
|