|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
) }$ x" }/ u: r# {& O/ {/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
* d1 a: D0 c* W3 @1 u' E3 V$ _3 ~5 _' ?' g/ f) }& Y+ |. z m$ [
这个头文件内容如下:) j( x5 M5 G0 M: n2 X, A v
#ifndef QTCONCURRENT_RUNBASE_H
8 c" }% d- q$ n4 ]6 H( J, y#define QTCONCURRENT_RUNBASE_H! [0 z. t8 Q3 o, K
$ {& f* `; S% L0 x#include <QtCore/qglobal.h>
' m$ m# |* w( q, n) y# n, } E. j) h6 j/ z- v t! W
#ifndef QT_NO_CONCURRENT7 a1 C3 O. y) \1 t# a
; J' a1 E% X6 M% a4 f9 K
#include <QtCore/qfuture.h>
, S5 P. V: M3 M! }# f7 _2 R* D#include <QtCore/qrunnable.h>5 Z' O# ?( C2 E
#include <QtCore/qthreadpool.h>
& C3 A4 f% g6 v! e2 {
, ~- p/ z) q$ d) z& ^ IQT_BEGIN_HEADER
' s) c. [3 l4 t; `# s3 E' |/ t! DQT_BEGIN_NAMESPACE. P' t' o: Z( R5 W; l
( ~( c6 `$ g5 L& T0 L" YQT_MODULE(Core)6 b$ f5 i' M9 e& n
0 h+ _0 {6 N. @9 U+ K#ifndef qdoc
8 ~- T7 J$ ^ {# E7 M8 [9 p$ B. S4 S8 h/ k- l3 D1 H
namespace QtConcurrent {
5 Q3 k6 y" F s, x" Y
6 B7 B3 C; z% Q2 g& D8 Ttemplate <typename T>
7 s. A- z5 \: u8 D5 A8 H) B3 P' sstruct SelectSpecialization
% V3 @, e# V1 j. S8 m5 F' ^7 G{
+ N- z2 I5 G A& q; q template <class Normal, class Void>- d8 C; U" r" |8 p8 B
struct Type { typedef Normal type; };
]1 O4 q- {' R( I7 K};. x' t, s4 p7 ^- `- T: c% a
& B6 i3 c" e2 ^3 p0 n2 O* A
template <>
2 D2 A' P0 W8 t; q0 rstruct SelectSpecialization<void>
1 c; ?' I7 e) k8 S* c, C{
8 o- W5 e3 u2 l+ N* h$ G" _) [6 M template <class Normal, class Void>
" b/ b( z9 ^+ H5 Q( u( Y& o struct Type { typedef Void type; };
7 F# V+ U, [% `- x: m: ]0 j# {};$ a2 \7 \- `+ @5 O0 w' B3 Y
% E- z. ?: ]" d2 P" e
template <typename T>) |, ]. M' w3 @9 \
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
2 q6 S( ~0 j1 O& Y{
4 r) a( Z4 k1 B- p% n7 d* npublic:4 N+ U) W$ P9 O5 K
QFuture<T> start()- P( m4 y/ }' k2 M# a! U
{
4 t5 M" q; v7 w this->setRunnable(this);! S4 N. A. f3 t0 J3 y
this->reportStarted();& m F+ P, {1 g' y$ f# t) R+ T
QFuture<T> future = this->future();% T6 I- o3 l3 b3 E( ^$ n
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
4 I/ p W9 T- A return future;. k" P! [! t/ H- @! C" v0 N8 U
}
: @# B5 G2 B3 P0 C$ Q6 e+ S; V; W! d6 x% `$ e
void run() {}% V3 {$ l: m7 }" \2 H/ |# G4 m4 j
virtual void runFunctor() = 0;
0 j- f- g; B( l3 Y7 P9 D};$ }& t% G+ a7 i
* {/ x5 f" y; Htemplate <typename T>% v. z2 I- T7 M3 c/ a1 w( G9 H
class RunFunctionTask : public RunFunctionTaskBase<T>
* H3 L% j. o% f{& n5 e" U3 u7 u7 c M! ?
public:
3 f F5 |/ N- ]: Y1 p5 g/ e void run()$ u e6 N$ c+ W0 m7 P* J5 r( @
{
" w; g2 [# T6 Z: v0 n+ ^ if (this->isCanceled()) {
i: q+ {! J) { this->reportFinished();
5 n. [$ k2 {. N* y, i return;
) p1 U+ k3 {% [# r3 M+ ] }
- ~. s, ]2 R% T8 P }" }. B. Y this->runFunctor();
' L5 d8 U( s2 a# _# B this->reportResult(result);
8 u, |# j4 c) y, V this->reportFinished();/ X" n/ V4 s+ Q$ S0 t, z" `/ |4 L' E ~
}2 P0 b5 [8 `- t
T result;) ~% c) M' P7 H5 r
};
1 `, C+ y$ N" Q5 c
5 H) o; ?/ G# P# J$ vtemplate <>
( s& T8 O. k, \class RunFunctionTask<void> : public RunFunctionTaskBase<void>+ ~! P; V4 l) Q3 Y: r
{( S: {" Q: s& n, o# `/ U
public:# C& J) u/ ~0 ? c
void run()+ s5 W; ^9 g2 z7 }! g
{# }/ k m; w+ j" H; q: o* ^
if (this->isCanceled()) {
* j: l+ H) c' o4 ] this->reportFinished();
' {" x+ v4 O4 {$ H! R1 s return;5 P% c3 C2 e$ Z( m6 ~) g& U3 w
}
6 l. z4 T; A3 o9 z this->runFunctor();
- E! ^* `! j# P- \8 H this->reportFinished();
+ D' G) \' \7 A; X5 | }) f0 u- E% k! T2 _6 a. [
};" [% A. y+ s/ f; e( x
+ N( W* E* D+ Z$ v; L+ u+ I* N
} //namespace QtConcurrent
( S# L5 ^7 N' _8 F. J; j* m; I8 t7 X
$ S/ A) b$ L2 m) {. n#endif //qdoc
: H% c% `5 g$ i
! A. ?! I3 ~& pQT_END_NAMESPACE
+ p* A) Z0 K, i {* C0 S- aQT_END_HEADER' C7 N( L- h8 V( H1 Z
$ L6 b5 K1 Y7 m$ T; X! M' W#endif // QT_NO_CONCURRENT3 `6 K# m' i0 {) ?6 L
4 z) x: C5 K( Z; D" J#endif
; \* Q, \" I" M
( t6 f. N% O: f" a |
|