|
|
我对syslink进行交叉编译到arm,但是出现如下错误:% ?# ]4 A R# G0 T) n/ D) x/ 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'+ \$ ~. b) w( N" h* H$ ~
7 t9 S, C$ Q K) y* K这个头文件内容如下:
. H' ~, a' {# K) n, `#ifndef QTCONCURRENT_RUNBASE_H/ s7 C/ q( ~( {
#define QTCONCURRENT_RUNBASE_H/ E. k* Z# k4 N6 i4 N. n4 C
0 E. I& B) x; Z5 b% _1 g. f#include <QtCore/qglobal.h> B2 \) D3 x/ f. \- h- o
# D" @! _7 u3 Y+ S7 C$ A! G, A3 X
#ifndef QT_NO_CONCURRENT
/ A. r1 g& ?' n0 @2 R( T( L5 U4 K% A& ]1 W2 Y; w
#include <QtCore/qfuture.h>' M" ^7 c, v, R/ a5 E% k2 ?' g+ j
#include <QtCore/qrunnable.h>
% {6 K+ C* [) k8 z- v1 W#include <QtCore/qthreadpool.h>
4 @( S' Q! a+ b6 D) h- G# E/ c; R6 U3 a k
QT_BEGIN_HEADER# L$ A% Y1 q( P' C0 q" @# g
QT_BEGIN_NAMESPACE4 f" K7 ]: D! ^3 f' M, S& {, @
1 K6 |. a1 _* ~ d# ~* E
QT_MODULE(Core)- A# J5 }: A& z, P" D
9 A: R; u$ }) ~1 Q, R0 G% t
#ifndef qdoc( [ r& y4 S' `4 i% O
$ ~* M# p$ T7 a xnamespace QtConcurrent {
. @! w6 q# y3 q7 t( {( o
- i; w' n- d1 a0 P- W- Vtemplate <typename T>/ e$ c2 A/ W6 ^
struct SelectSpecialization( q- `* E F' W) Q& ?. v
{
& D& v; r' T8 G6 a. o/ ^ template <class Normal, class Void>: ^9 h2 N# e$ c$ D, u' |2 `
struct Type { typedef Normal type; };
7 r/ d* F+ c( [};) d7 @/ j1 D# ^% x0 |& X) b
u6 M% L# a. R2 K, h" I* Ztemplate <>
) N! g9 L& z A$ b) E4 C9 Lstruct SelectSpecialization<void>* q6 F* t8 K' _/ [
{
3 l6 l8 C1 l4 Z template <class Normal, class Void>
6 O& B* D' I# d' [3 | G0 M# j S struct Type { typedef Void type; };
$ g- {. ?, q; z/ F};
" @9 i1 G$ q: I( h* y0 y0 y; \% p. O, l" X% J
template <typename T>
1 n1 G7 x" k0 Mclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable; Z* F+ W& ?7 H6 L7 |) ^5 r
{
2 g% I: y! T$ ^9 h7 ipublic:
6 J8 l; V1 W) m# c3 X QFuture<T> start()
. n2 L8 E& T4 t2 p {
# h0 U1 u0 H3 l7 s7 M0 ?! L this->setRunnable(this);
- m' p: m7 P; o+ k7 I9 e+ s this->reportStarted();
, q* a# ]0 i2 l! c9 X# O( [ QFuture<T> future = this->future();; _7 K# `2 j) J9 l, W9 B3 @2 S1 @
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
- j. S+ x0 m' N; j( r+ |4 j return future;
3 e$ ?/ e' D0 Q) W }
, y4 P, w: G3 h0 ]( w9 l) K! i, ^4 D& i3 j5 Q
void run() {} ~7 Z* _4 I* [
virtual void runFunctor() = 0;" G% I3 Y. ]1 |
};
0 _3 [+ s- C! k/ @" I( t
' Y& n$ h# \) d0 k6 \# M+ s) Ftemplate <typename T>
E# x( X# I8 |* g( y# O! Hclass RunFunctionTask : public RunFunctionTaskBase<T>
c( p# d# u5 ^7 E2 @: T5 @{
0 o6 H7 N, g. ~# ypublic:/ q: r+ f, a2 K( F8 c
void run()( a# o6 w" p8 i9 _: N
{6 y% D/ l2 c7 v! R0 a; O) D
if (this->isCanceled()) {
, f! d$ }- m( i8 E; i! @ this->reportFinished();+ J8 G6 `% l% C/ m
return;
4 g( @, ?' i% z+ D* U) n }0 M# y$ P! N# W0 n( I" ]: o
this->runFunctor();3 U4 r8 u* H2 S1 `/ b1 p
this->reportResult(result);
6 ?! U- _- y0 b K this->reportFinished();
( g" y1 N/ a8 P# r3 b# O }2 b& N9 T: J$ r
T result;" j6 B8 }) m. {6 v
};
7 q" |) L' ~3 @2 G3 B
2 W" X3 i J: n6 X0 Ctemplate <>; Z7 y; o6 z- W
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
+ _8 c* x" }) g{
' I0 {( h' k# Y9 J5 ]( rpublic:/ |6 R: w& c! d4 c
void run()% y v, C a/ g7 n. a2 g! J3 t
{
/ l1 O* P/ }" y if (this->isCanceled()) {; I9 b4 n, C( w# D3 h
this->reportFinished();' a3 t( u7 Z0 g) |2 F$ w
return;
) u( ~9 ~ y5 O7 X$ D2 g }
t9 X+ }) j. k1 N this->runFunctor();3 n5 Z. ~! E8 i
this->reportFinished();6 Q; o2 \: J+ k7 G
}6 I! T5 `, C, T! r. E3 v3 O
};
" [- `5 \4 d* x5 Q; z
$ H9 P6 E/ X3 b7 ^4 {/ L3 | i} //namespace QtConcurrent
; A' h: f M& a* N; ?7 |# \
) g* s& W8 N. i' c3 K#endif //qdoc
. y% N# i! P) O8 I1 w
, I% _; ]3 {4 f* y8 g* Q- n# UQT_END_NAMESPACE8 l" V g8 c: _: L: b% h
QT_END_HEADER
1 h' E: k, C6 b5 n7 d8 w* e! |8 [" f. F2 C2 Q
#endif // QT_NO_CONCURRENT% v; t* w! w9 K! D' G- y( g
) Q# x& |3 Y0 X# v4 w1 u& S
#endif- G( P7 R, c( j' _+ ?
* {: _. H. V a7 A- O# G
|
|