|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
0 B |1 _) q' m4 J8 K/ P/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'3 m& w% y2 r9 p6 p. P4 _/ ~3 u$ G
8 d* L$ c' b- M* C6 z, i+ m这个头文件内容如下:
+ C) Y* J7 @1 \& C5 l9 B#ifndef QTCONCURRENT_RUNBASE_H
9 t! p1 S, |) s: s4 _#define QTCONCURRENT_RUNBASE_H! t. c7 G* D/ g) g+ I4 f
7 |5 e, q' M2 S. m$ T. d# t
#include <QtCore/qglobal.h>
" C# A- z2 i+ m6 p' U" M" g4 y0 ]6 _1 U5 A: \( ?
#ifndef QT_NO_CONCURRENT
9 _7 U) Q1 `" z' n0 X/ ~* P* ^
1 A$ O. R: s+ Y1 u* j: j; q#include <QtCore/qfuture.h>
; w% n% t1 u" [: w5 r: k/ b#include <QtCore/qrunnable.h>) Y( H H/ n6 x6 a2 r; m* q; E
#include <QtCore/qthreadpool.h>
$ M8 B8 i+ Z0 n
# m5 e- E8 v( {* U" P3 WQT_BEGIN_HEADER
* p4 H* W, Q6 R5 f Q% ]$ K, }QT_BEGIN_NAMESPACE
2 h9 ]6 m# ^9 M) u$ t( I. h$ i( I0 Z7 [
QT_MODULE(Core)5 R8 K! u1 ?6 y/ d4 }9 S
Q0 t0 a; K. ^$ M7 C9 _2 X }. F
#ifndef qdoc& \+ R$ g! \! T* S3 {3 C9 `% R
7 u5 N+ L3 ^+ d( \namespace QtConcurrent {
/ d7 ^6 m% a! g( c0 A- V, ~' z. m! x. U4 [( c+ V( ~
template <typename T>
* @. {& c4 r ?% |struct SelectSpecialization
' ?, m9 v7 D3 l) v6 Q! q% ]{; @' g) H: q3 Q5 @; o
template <class Normal, class Void>
Q% S; e8 l8 `' H" j struct Type { typedef Normal type; };
' k4 g, S, {$ ~3 m0 l% c( w};$ B3 M( ^9 v: m! `& `
/ s3 \8 {" b( e7 k
template <># `! L9 y# A2 |. e$ m: d8 `/ `
struct SelectSpecialization<void>
0 {* E7 ]% ?5 m4 j/ _0 [6 P3 {{( {; i8 L9 s2 m9 x T
template <class Normal, class Void>) w, r9 q' K# \1 I
struct Type { typedef Void type; };
9 r( \0 x9 u5 ^ c+ T6 K- m7 @};# w: V6 Z3 H, a' _$ C
3 e; {& t5 V8 U1 T) P
template <typename T>
4 e$ F( I+ u4 M% t/ N7 f" F7 ~( M# Hclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable8 j* ^% m! V7 e+ Q8 M
{
! e! r& F* h0 b2 X: j8 N+ \4 ]6 rpublic:
& s8 p, n" m$ S8 ~# w% B QFuture<T> start()) U0 m/ a5 i) p0 u/ W7 u
{
7 j4 e; ~2 G4 ^- F this->setRunnable(this);2 U. t! ~1 E% p/ |5 O: r* \4 X/ l
this->reportStarted();3 ^/ _; t3 ^! K) k$ Y
QFuture<T> future = this->future();
* l1 v8 d9 O! m4 h QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
' l5 F) U' c1 o2 P4 x7 \* Z return future;
( G C' f( b) s4 x% N9 e( ]; u }- @% U! X, V( P3 V: Z
0 y5 u' e( N+ S
void run() {}
. F, c" Q" w! d B, P9 M4 D% v virtual void runFunctor() = 0;
* A$ \1 x7 i, i9 o};% D1 H9 }0 H0 N% e2 v, z
: c0 Y+ w" @: i! x/ j( U
template <typename T>
( J8 u0 b; [, s/ G( Bclass RunFunctionTask : public RunFunctionTaskBase<T>
7 J8 d" j! K" g7 n; @+ j+ [{5 z3 `: o' [. t9 `7 h% G. O
public:/ L; F4 A) d H
void run()
4 I- o+ f* N$ b! {5 A+ b {1 H! W* i: F9 |, k( `
if (this->isCanceled()) {' U* N1 l* ]# {1 J1 p3 ^. p$ j$ U
this->reportFinished();
+ {, D# e# J" a0 }7 M' X9 Z7 Q return;
( R. {4 d: a* l/ U- ^ }
- |* W2 a( o! c. {9 U- _ this->runFunctor();
: E% u5 H/ u3 Q: v5 l1 `" V this->reportResult(result);- A3 i# e% [2 v+ V
this->reportFinished();! P) M8 A+ p3 B, g3 }4 p; e+ ?- u7 C
}! G S# @( J0 g' ] D
T result;
! S: A$ V; N6 a& L; B. y4 v};3 A; A$ I m3 @& z+ S6 ^* ^* h
8 Y; o7 B( ]; E9 p* F$ |' u8 I% Vtemplate <>
' l! i& y' g7 A# b2 ?" h* Y( J9 zclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
7 c: x: y4 j) f4 e s# s S{
0 o8 t4 o8 A6 J! Y# e1 O# M( rpublic:
+ n- V3 L; e3 ~; L5 q2 k6 m0 | void run()
# v: L% C! |( N; X4 o u9 H {) }; Z- A4 V$ P, Q: ~% |: c) w
if (this->isCanceled()) {6 i0 C' j" |6 w0 i* L- Q+ N2 j# k4 s
this->reportFinished();8 V; d# j* w% X
return;
0 e1 `7 u. K- i* S$ r/ Q: u }3 \; r4 o3 m/ d' j7 z. X) ~9 P
this->runFunctor();& w0 d4 a' L' C' B4 u6 `( I
this->reportFinished();
+ z& P5 C/ ^/ R' @# E/ a }
% r+ ]- i7 ` W( z8 Z* g};
{ g7 J; R5 V& a+ a
5 {% p2 N, C* U- M} //namespace QtConcurrent
7 \$ L+ d/ Y2 i8 j; O9 M( ]6 L, p" P4 v! N: C% }
#endif //qdoc1 J+ n' {( T) K; G9 V" Z
4 l5 I% U* S' a( r/ TQT_END_NAMESPACE
) o" h9 P5 x4 m3 x7 |* pQT_END_HEADER' ?1 N3 K3 `5 b9 I7 N. K4 q! z
; s0 t. y1 R" c6 H#endif // QT_NO_CONCURRENT3 k5 d& e& w L: B% H
: B0 p. E# F, o1 D
#endif5 b* T) C3 c g5 b
# V; s/ {2 {, F0 J
|
|