|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
( X+ T L+ x" 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'0 s$ m C0 b$ }2 n. O. _' j
5 x. a0 I, C; f. O( ~( Y( ]这个头文件内容如下:
( m S* Z& r' d. Z#ifndef QTCONCURRENT_RUNBASE_H
, O' D+ f0 v7 ` W! h2 m#define QTCONCURRENT_RUNBASE_H& S4 C. Z Y! N, A' {3 f
' S* P& D3 M/ ]- d; o; l5 W#include <QtCore/qglobal.h>! b/ d% B2 t6 c* m2 j
! h$ \2 _/ E4 _5 C* F( } N4 W#ifndef QT_NO_CONCURRENT
9 n$ b: \( S1 i7 y/ z: n3 ^& B4 w# }" f5 v r
#include <QtCore/qfuture.h>/ j. W7 v% b4 H* T
#include <QtCore/qrunnable.h>
0 `$ V3 `/ m, a+ Z8 m#include <QtCore/qthreadpool.h> G! I0 G- J8 s8 }. V& q
- i, [8 e i; C7 e h9 k dQT_BEGIN_HEADER* a) h( i! d- {/ N& k
QT_BEGIN_NAMESPACE
1 G$ ^: j' `9 h# t3 [5 N4 N! P1 _. A* [. X0 B1 \( G; g$ ]
QT_MODULE(Core)
% ~4 u. Y" `$ b- d% c p7 U' a' P* d1 X2 r8 ?
#ifndef qdoc
9 N# |9 ^# b: m! [: q7 b, T( I, b/ E
) R' I, E& Q& F0 @! \" i/ Rnamespace QtConcurrent {2 t7 N) x& K( J* t* a* j
$ G) _+ m# o' e. P- r+ v Y& Ltemplate <typename T>
; S" u% }+ [0 ?0 jstruct SelectSpecialization
/ A) |( E6 }$ r* q9 v. `{# F3 w1 q" I& H: S
template <class Normal, class Void>; W: a/ n5 e( A0 ?: k8 r
struct Type { typedef Normal type; };
+ m3 f* C2 X( w) ? l# n) k};- _! p) M6 z& {7 n& K) c
3 ^' ^" a( r: p8 xtemplate <>8 H& y! q4 k3 Z5 C+ W, g: k& S1 H
struct SelectSpecialization<void>
6 L! |5 d6 G# w1 R" g{
" b) T: Y! ^' V; } R! j7 j2 g template <class Normal, class Void>
# n3 Z& y7 N7 w$ W struct Type { typedef Void type; };. B& o1 S! _4 u( ~1 H j7 k7 f! I* Q0 u
};$ n; s' c9 O4 f: n G
/ U) B/ X8 F, m. G5 Ftemplate <typename T>6 g, @) o, u" e z/ A+ ]
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable3 ~) X. M) s. ]# {4 p
{
. K8 `) K x, V2 P8 Y# z% vpublic:
h5 e5 H4 M' F; ^/ g) i QFuture<T> start()
5 |! D8 @; \& H7 k {( R* }/ Z, C9 W) W& U B6 S, ?4 r
this->setRunnable(this);
" `' U$ {( d, a this->reportStarted();
% A4 q- y* ?% D: V" g QFuture<T> future = this->future();: W1 D. l! G" }3 k; Y8 d
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);9 Q9 o0 R8 Z7 `, w3 ]
return future;
: n* E7 g' w7 o# b. |6 e }
9 q* u2 B- r( h! N' \( W8 ^& G' l2 M/ A
void run() {}; W q! z$ b g) ~% E- f) {
virtual void runFunctor() = 0;
* {! [1 b' e( Q; M( ?. W0 [1 Y};
7 l: L1 j9 _+ ^; z9 {% _: L$ i% L/ e) A( j$ R5 R
template <typename T>0 o& U% V" T# e/ D {6 i0 v. q
class RunFunctionTask : public RunFunctionTaskBase<T>
4 [( B M. q) i{5 R. d! m9 F& u! B
public:
0 r! j: ]6 B0 J% m4 p! M! P void run()4 }3 E5 e( Q, d4 M* j9 R- p
{( m2 M7 s i7 g: w+ P' g% Z9 N
if (this->isCanceled()) {1 j8 S' A' E9 z. j3 f0 v. o4 f1 r
this->reportFinished();* _6 o/ G" _5 d9 i6 U* ?
return;6 a& s+ M. t% d; _) [) d# [
}9 c" m% V! C1 m
this->runFunctor();
6 ?" L* |8 N: {$ z7 E; c1 F this->reportResult(result);, \- s$ z, O3 p. t7 c& B" X
this->reportFinished();1 Q8 b7 D' R9 ]/ G0 e# b! M
}& s& ~& F- u% W7 p% ]: Q4 P
T result;
6 C8 @: L! Z3 h- m) O};
1 l% A, A% E( A6 O' ]5 x5 f# c6 u
template <>6 q$ [9 ]/ u8 ]3 W; R: i5 O
class RunFunctionTask<void> : public RunFunctionTaskBase<void>- E1 b3 P" E8 O+ S3 q5 T; Y9 s
{. x, L6 N: j$ H" d' p8 \( D U/ Y
public:
0 }6 z3 a( t6 h5 g3 d void run()" U) K; F& e8 \2 \7 L; \3 `3 [
{
1 h: }! D0 f- v+ z- z. s7 N if (this->isCanceled()) {
/ w7 @! U6 ?9 W5 q# N this->reportFinished();: g" j+ f5 }, G$ b
return;4 T7 {+ L g+ z0 i9 ]4 [
}7 Y2 c/ p4 Q8 D
this->runFunctor();" N" K4 `% F( ]6 j# H% x4 u
this->reportFinished();- }1 w5 Z+ C1 V' J) \
}
# I5 Z' }: @0 E8 F4 [" S: V}; [6 d( B6 x- |5 \5 d
$ a5 [( O- }( y7 ~0 o
} //namespace QtConcurrent
/ F* ~2 `5 `+ B" [
, `2 l/ G: D, c3 D. b* C#endif //qdoc# T/ O! M9 {& z
& H; Y# H- G2 ZQT_END_NAMESPACE2 I2 Q+ h2 o' O2 G
QT_END_HEADER/ |' X; C. F, r: |! K- q
) ~+ R/ ]3 m8 `0 M! S4 A#endif // QT_NO_CONCURRENT7 z' p/ _- y2 l5 l" p1 `
9 e$ U: F. r2 O" M#endif
' o$ B8 J2 u- w! }- w4 h& b6 Q- f1 u' ]+ o) ]4 A0 ~
|
|