|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
: v1 j W. } A2 Z/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'* A8 i& o" u3 M4 e+ H) u0 B
4 M! [6 h% Q8 L, K4 m* D6 t6 q
这个头文件内容如下:
8 K; Q4 s! f2 f$ j/ P; i" d#ifndef QTCONCURRENT_RUNBASE_H& H. F$ A, B( J
#define QTCONCURRENT_RUNBASE_H' e1 P( C2 @0 N, c
9 B' W& E/ A9 S0 o2 O
#include <QtCore/qglobal.h>6 a. }2 a' s1 c$ ]
- o* G) ?. u# m/ h5 C: u
#ifndef QT_NO_CONCURRENT
1 Z$ \) j7 h3 Z# Q# F4 {0 e+ J9 B- W' ?! C% h+ t. `# M& x
#include <QtCore/qfuture.h>) M# K+ E5 m6 v! U
#include <QtCore/qrunnable.h>
- H d! Y$ A) t$ Z5 w6 S#include <QtCore/qthreadpool.h>
& M& V, |" e$ c$ J7 M
2 b" e& C6 q# i5 X' m8 k$ xQT_BEGIN_HEADER& v* @* Z# E* J( Q6 C0 f
QT_BEGIN_NAMESPACE
; l- R" {) w- s
% }" s0 ~/ v2 b9 i e* y, S8 C) XQT_MODULE(Core)( i v9 |+ u& B2 n0 y( Z
' q7 Q' K3 `- l: V [#ifndef qdoc9 n0 v2 U# [$ Y/ v
9 }2 G# F: t# z/ i+ Y; q% i
namespace QtConcurrent {
$ G( p3 P0 ~* i& J6 w ?' ^2 E# U
template <typename T>4 K( {- N& {- y1 S0 M* v
struct SelectSpecialization
! z1 m1 P* s7 b, X* _: Y( ]: C{
& W( S. N' i. l template <class Normal, class Void>" X: d; ^# @) Z" n! m5 K
struct Type { typedef Normal type; };
0 j* @7 \, x8 E& }9 J};& x0 x1 g O3 n% d8 i
$ q8 G) a9 o% x. X! o$ Atemplate <>
2 e9 Q1 z/ e) |- I. d7 ^7 A" w$ vstruct SelectSpecialization<void>; O" `, b4 B7 @$ u4 d1 R
{
) B; O. D. F6 P+ G5 d8 _ template <class Normal, class Void>
. v* ]& L R+ B7 m/ a, | struct Type { typedef Void type; };
7 N, L, t: I6 O# k};% W; g3 F1 `1 |. K5 J6 n$ T
6 B, r0 _8 ~6 N+ K9 u! Wtemplate <typename T>
, Y D6 T9 S% ^0 b% V: `5 \class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable6 N* f) e5 u! u/ A$ s; |- c
{. V& ^& A# L) L, ]
public:
6 c2 D/ X' j2 y7 R QFuture<T> start() `/ q0 [4 p+ G: y4 s. I( e- e
{" g3 r* M9 f3 J J$ s
this->setRunnable(this);5 N* c7 d: ]9 o' _% d+ t
this->reportStarted();
) ?; L2 U/ ]: x3 F0 F1 H8 b3 l QFuture<T> future = this->future();
' S4 f" q; [9 K2 `( `1 V QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);0 q5 C% X* p( z; [
return future;# Y3 `) Q @* C. B& g1 ^% Z
}3 w' h1 p- [, _9 h r. m! w
, S1 q# ]) c: E+ i3 `* b: i void run() {}* h& `* n& d5 \6 b
virtual void runFunctor() = 0;
6 r" v0 ?5 c/ }, m* q. t};% `" E* C$ w9 q" v3 a- x
& k. e# g/ \5 }5 C; i( s! Htemplate <typename T>. e9 Y+ g' o1 ^7 O
class RunFunctionTask : public RunFunctionTaskBase<T>2 _2 J3 m! D% n8 x
{
8 W0 @7 Y* U# ?public:
0 `) ~+ k& q9 {$ T/ B void run() @+ [2 L5 y0 s! T( x1 Q7 p3 u
{
4 n+ o* R) h% h if (this->isCanceled()) {* Q% E6 ]$ C* X. R- `2 d6 S
this->reportFinished();
/ K$ ?6 e4 s2 [$ n5 Y7 `. f return;. d2 O3 ^! f- k% M
}$ n- R2 t' b5 l
this->runFunctor();0 l/ Z& I: [( X/ W3 g! J8 m
this->reportResult(result);* l: N4 F R. r% X7 M* {; P
this->reportFinished();7 g: h8 t* `$ U5 a3 Q. s% x
}1 Y4 o0 l4 B/ u( I, N
T result;
5 C2 H1 g1 ?. n};
6 E1 \9 {6 ^& _1 |
6 x- Q( A- @3 L9 Y$ Utemplate <>
2 R: \/ a3 I2 vclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
% P& M' A @/ K4 L! o9 R{
+ q0 O. v/ Q; N. b& @. Upublic:
/ O1 C( v" }3 G0 w void run()" {6 {" n! O3 D, V7 @+ {% u& t
{4 k* @9 I8 k6 d. k
if (this->isCanceled()) {
: w3 }! O R4 ` this->reportFinished();1 r0 S( c) z0 R M' a& `
return;8 k0 a5 U+ ?& [* S
}$ y5 M- |5 k( D6 J3 R3 g% X3 G+ ?1 u
this->runFunctor();
0 U) d& Y9 H* C/ Z this->reportFinished();
( u% ]$ V6 k, C. W3 r1 Q }6 q7 }* i7 m4 i: r
};
: i/ \: ~, q: [% A3 W
, h' O$ f5 g( v2 n: F} //namespace QtConcurrent& W' N! K9 q% l( u3 W" }- A/ J' E
, X0 J1 h; q8 y
#endif //qdoc
& g3 a2 S2 w; Q' G T- a
- t+ |6 ^" v9 ~QT_END_NAMESPACE
4 ]- b( e- l& V$ ?: `3 NQT_END_HEADER9 `7 C' A2 N! D! t ~0 b
. G; ]8 V3 B4 c8 @ _7 H#endif // QT_NO_CONCURRENT
# W! j7 X# Y" g6 F4 p; L" C) H; u! }) G3 l. D3 W
#endif
0 z7 ?+ o' k J7 w; u
1 _+ n- r2 @9 u f+ k |
|