|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
2 K9 r7 |/ l4 C b2 y/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
' O1 G$ k+ }# Q: _# e9 h. Z; J9 b/ o b
这个头文件内容如下:
# @1 ^! J8 Q5 u#ifndef QTCONCURRENT_RUNBASE_H
& j( r5 M$ c W& T#define QTCONCURRENT_RUNBASE_H" Y: x7 p9 T$ t" A+ [1 T4 k
0 x. I7 ^4 {0 Y#include <QtCore/qglobal.h>
) T1 e. t' R9 I7 g9 \/ n$ a' j8 `3 {4 _: w
#ifndef QT_NO_CONCURRENT
/ w, ]$ U2 R# A
/ ~, q1 C3 Q# o& f! q#include <QtCore/qfuture.h>
1 m; R1 Q& e ~* `6 l1 k#include <QtCore/qrunnable.h>
6 | P/ J+ C3 `" {* |#include <QtCore/qthreadpool.h>
( e! g6 Z( E, K0 o b9 M7 i
& e6 i; s& P% s3 FQT_BEGIN_HEADER" U" L- N) O. j2 A: N$ ]$ P
QT_BEGIN_NAMESPACE) E6 D. v- {* v1 \- |8 Y
7 y- ]6 u& U: v: J3 F# `3 A
QT_MODULE(Core)
# ^0 Q3 G) B; W1 U2 Y0 a/ F. l$ q8 d' P, \3 |; ?0 r+ L. i
#ifndef qdoc
7 ?' i i3 G7 M' g' _" b' Z5 e
& q) X* s3 |8 ~3 _9 g) r' Tnamespace QtConcurrent {
. j& Q$ `& y3 _8 W2 q7 N7 J
, H* k2 v& ?( U+ Ktemplate <typename T>
. b. D. I, g3 |" F$ B- Ostruct SelectSpecialization( d5 a! O2 B2 s% i z4 p
{
+ `" h8 D# q X( c- x template <class Normal, class Void> h+ K; W4 W7 \0 i) I
struct Type { typedef Normal type; };6 b; W1 g+ y9 p* b6 g
};1 i- a; Z4 B8 u; V1 C8 ~* {2 `& M/ j
5 \% q9 m8 y s, E0 k# }template <>
- q4 w1 [5 e1 L( k" f6 ustruct SelectSpecialization<void># A1 I. e3 z' h+ I& Q
{' _" a6 I- F+ Y
template <class Normal, class Void>
% |# o, E0 C3 q! u9 q. Z" e struct Type { typedef Void type; };
. T) J6 Y3 l% P$ ~};: R6 @( D7 o8 O, p# \/ n1 `- L) f
5 D; U8 @) u/ D2 { v8 Z5 w) v6 }
template <typename T>
6 { ~" a8 D% E( X+ k+ pclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable4 J) {; U6 `7 Q; i) W! O3 D0 Z
{
8 ~ n5 P) o: G3 k$ U& apublic:
2 M m8 w( m& n QFuture<T> start()# P# B2 O( d+ I! ^% E: N
{
" r) F1 D- O; x1 P this->setRunnable(this);
$ Z' L* E h! X- ?* A" M this->reportStarted();% J {0 B3 O! U' Q' d% \+ Z3 w2 p
QFuture<T> future = this->future();% h) d& y3 C/ v
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
% e c- h( I, b2 a5 } k% G return future;/ T7 P# h" e% I. C4 B V; i
}' S( \% R0 D. Z5 H0 Q# v% X! c/ b
6 v+ Q R# T0 L# a, f9 q- ` void run() {}
4 R, T f: ~5 k# n virtual void runFunctor() = 0;" }. ~; n* ~* H- _; g5 m7 C3 B
};% L% l( y8 K w' u" F: `: s
3 K ]+ k/ [; R/ w; K4 _1 q
template <typename T>9 N, x7 L L) A1 a
class RunFunctionTask : public RunFunctionTaskBase<T>* l/ T- ]: H; v8 P; [/ @: n7 O
{- z7 P1 Y/ ?' z, `6 |
public:. _4 g6 ?6 s( f/ M/ j& m
void run()3 y: S: A" A. s5 Y: [5 C! i9 M
{
+ A5 S5 }9 ?" S& `$ e$ w+ p; }+ B if (this->isCanceled()) {( ?) A2 k9 D7 D9 P0 q8 e
this->reportFinished();3 S" f) A2 y& E! L5 N
return;
2 {: K+ p* R. x9 q# b8 j! ` }, N: |; V- D# k6 X+ g: K; ?; J
this->runFunctor();
) a( [: Q( J8 c7 ^ this->reportResult(result);
/ K0 r- o: Z2 ]1 P" t. N+ o this->reportFinished();
r1 ^1 \: Q; H; | }
8 V2 W v0 f8 h3 ?1 b" W T result;
2 @( C7 N7 B+ x- Q) u0 |};
+ Q0 P6 v) U6 o% d& T; s* C, M
. o9 R/ ^9 e1 xtemplate <>2 Z E) c$ x% T' O, R
class RunFunctionTask<void> : public RunFunctionTaskBase<void>3 h9 L- T% N# z& f" |: q# ]8 J3 M2 ^
{
* Y6 S, @8 B+ j8 Ipublic:
8 \! P; N* f" N; {4 G/ u void run()
# q, a# [5 @! r {* m6 X4 v. k. @1 @+ W! v" b
if (this->isCanceled()) {9 x2 D; w, u+ W! P7 g9 B2 H
this->reportFinished();
8 G" f+ u5 q8 ^4 G: { return;, T3 `9 t. T" ^! e$ T5 x. @
}
* E4 r- G6 }: N* \; y this->runFunctor();) A: [6 W+ Y6 I( a& r5 M
this->reportFinished();
4 }/ g0 e7 Q8 r% c! ^, h3 G }' c/ U4 H" B6 u9 H& w
};4 L! n3 c' j0 a
0 ]& T2 v: Q' @} //namespace QtConcurrent
0 a( L$ e- [" |6 O7 U1 E; q2 E
. {2 I( T1 C7 e) f#endif //qdoc
* z5 h2 `' a* U `! ~9 q# S$ `& H! X1 S/ q3 V) m
QT_END_NAMESPACE
M: F& @' `( s4 p/ z' V( y, y. @QT_END_HEADER
' H& l% V! k6 H/ V0 q& H1 ]( P- ]+ v. V2 R- T7 h9 j
#endif // QT_NO_CONCURRENT% z, O' X) n1 f( ^
$ |! ~, Q% |: W' Z+ K#endif
4 t# [. ~4 H* w; l$ e, j, C, r/ x
|
|