|
|
我对syslink进行交叉编译到arm,但是出现如下错误:: h f* U/ n! a4 I; M2 ^7 i& e
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'. s# I7 q* w" o f8 }, ~
. [ I' B9 P6 f; y) u% f& I! ^
这个头文件内容如下:
s( E1 v. w- F" k9 ]#ifndef QTCONCURRENT_RUNBASE_H# ~% E' Q% P" P# C/ f! D
#define QTCONCURRENT_RUNBASE_H5 o h# e& q" D O4 w f
# W; X) _0 [$ v: M6 L$ Y: q
#include <QtCore/qglobal.h>
, ?+ _% D9 L9 J! H9 y' K8 Z! I- L
; h- U6 |4 C" P. E5 Q#ifndef QT_NO_CONCURRENT
h# d5 @5 s0 V# M& J
: @3 U" x6 Z, D* C& @6 b3 B#include <QtCore/qfuture.h>
) Z0 v6 O3 E5 d" y5 t! N#include <QtCore/qrunnable.h>
$ n7 i: `+ ?' q- r) E( p#include <QtCore/qthreadpool.h>
% D- a* J, |2 b. h
* w# X( Q, J$ ]! g6 b& J4 i6 rQT_BEGIN_HEADER) W/ i* A+ ?6 ^% [2 |9 }& D. b' |: p
QT_BEGIN_NAMESPACE
7 `( y- X2 N- z, M6 m( P9 M0 Z* o: |0 ^) V5 @) A& V3 j4 J$ d
QT_MODULE(Core)
; T$ D/ ]! Q" O+ {& N) J5 Q" E0 L) e! L9 u7 D: _2 m, [
#ifndef qdoc4 i$ O+ W6 [' G4 a/ E5 R
t1 L; I9 A, F+ }1 D4 l0 i) V
namespace QtConcurrent {
# D' L/ n: b- }% w2 j e1 ~ E- L' T& i8 q
0 {8 N4 |: z( _# w1 atemplate <typename T>$ J6 `6 y% {1 E! y+ E- \2 W
struct SelectSpecialization
' Z: J* `/ H0 x6 e' {{
! x. L0 F. b( M# ^5 V template <class Normal, class Void>
# l# y7 w2 C6 J/ j struct Type { typedef Normal type; };% E0 n5 d4 p$ y# W% u
};
7 K1 H# t- U% y7 \8 S" Z! I4 I& R8 L7 C9 l6 a! p, V
template <>
0 N7 e8 ]. A/ F1 `- x! K( ustruct SelectSpecialization<void>
/ Q( d- w+ J% U/ K# T) ~6 c{ O) p2 _, z/ ?% D* C
template <class Normal, class Void>7 `# x6 U' p: Y$ E; A7 P. i
struct Type { typedef Void type; };" q2 ~. M" t. Q& W: T' ]
};3 b) x t- U/ A, L7 N
+ p6 w/ R! Y: g [- B0 N4 R# c2 i* m
template <typename T>
2 ]2 ~! n3 E8 @2 ]2 G q7 N" oclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
, t- s5 b1 m* s7 z3 D{5 L& ?- P+ n& Z9 S# q) }6 h1 N
public:
9 Y; `# c' C3 h s3 J' A QFuture<T> start() j s2 d. ~& V b) [
{; q3 }4 q' B+ `' S0 U( E
this->setRunnable(this);
/ Y# e6 _+ |& o3 i& k this->reportStarted();
2 C' i4 ^- c) j+ h- {+ H QFuture<T> future = this->future();
; O1 ?1 d! i) |6 Z QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);% q% J& N- t$ Q* A8 X
return future;
6 p: S' c# y9 B/ [ }
4 o9 R" h9 h: U% `% V$ y* r
- g, j5 V' n. h2 v2 f- Z void run() {}+ }( ~# V) x; s5 S1 x G
virtual void runFunctor() = 0;
. u$ G# v( q; f" ~! M: r};/ C* P `, h* F" ]
8 y3 i6 G( ~& k0 Ptemplate <typename T># ]9 r$ o8 {, S: O1 m1 ]% p
class RunFunctionTask : public RunFunctionTaskBase<T>
) N- t8 S0 _1 B( Z: X0 x{
' H2 W$ e6 o# `% ppublic:6 _$ H0 w, f L6 g1 E0 s
void run()0 `8 Q- i$ V5 X Y% S6 k
{
% y% X0 E1 a4 S% U if (this->isCanceled()) {* |( q! M. Z3 m" N
this->reportFinished();$ v$ @* |: u9 Z% |1 X6 [
return;6 j4 E6 `7 J8 g2 P9 L4 {, {4 }
}; k) h# y4 l) A7 d' b# a9 x
this->runFunctor();
$ p3 m2 N* R- {; T) R this->reportResult(result);
' |* U6 D/ o: |9 w' \9 H this->reportFinished();
, k/ a9 [1 N4 x5 h }2 E) G! I2 i7 v% s' |
T result;# i7 a2 Q9 V+ s1 j$ Y
};
% Y2 B* r) {1 x/ J! C" u$ }6 h2 i2 l1 L3 c
template <>1 U% C# Y1 z- e( s# \: s5 y
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
) `. r5 W4 T t{
5 O0 E. [& q, N$ K" S2 v4 Ypublic:: ^1 z" x6 ]% D# I# Z6 x
void run()
8 E7 i4 T+ b4 ] {" ^3 b. Q, X, z' q
if (this->isCanceled()) {3 X$ }- U# I+ v$ y$ l5 |0 o# n
this->reportFinished();
$ B* h* p$ A' W return;5 L! O. J% Z* k! }) X% e( W
}: j/ S5 \! ?2 R! T. _
this->runFunctor();
$ o' @9 ~, H% f, z2 B this->reportFinished(); n, q9 e9 X) t. s8 s! I
}8 k" \# a: I y# H: ]1 \0 r
};" n: R& |$ p* N- H' R g
; D4 \" r9 ^; z) F: o) g3 F& h. W
} //namespace QtConcurrent
: T" w7 ]0 j* Y# ]0 W
3 Q9 n8 o# ]: l$ X4 e#endif //qdoc6 F6 |; Q4 J9 _. G# r9 g/ g4 s7 W( Z
# K6 S! T" Q5 Z% C; g* |: kQT_END_NAMESPACE, u$ @2 R3 z& H& A" f& o
QT_END_HEADER, A, d I* O2 u6 e4 l
4 o7 g. k0 U/ _8 B% y+ ]! x5 H#endif // QT_NO_CONCURRENT
" x0 `/ s' Q# G' j! W9 e5 F9 R. D$ G. ~
#endif
8 T2 M5 N' r. _) X4 `
: ?6 [- c' V( P |
|