|
|
我对syslink进行交叉编译到arm,但是出现如下错误:" [6 f1 J0 W \7 h& g
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'/ v, j, r! x/ X( k, y* {* @
' s3 D" P4 I0 D. B L
这个头文件内容如下:
# B6 D5 s1 p+ o! d+ z5 Q#ifndef QTCONCURRENT_RUNBASE_H2 n6 F# C, N8 | j3 a0 y, m
#define QTCONCURRENT_RUNBASE_H
4 I- c& i2 p" T9 C0 F! t
4 b O2 I' _- J8 `& i% t#include <QtCore/qglobal.h>5 s) u6 X* e5 O, I
, Z' O3 s! D8 y$ ^7 H
#ifndef QT_NO_CONCURRENT
. i P5 W' i7 K& z; [4 q9 v/ z
8 b9 M$ w1 X' G: f6 {#include <QtCore/qfuture.h># z: B w, q! t2 @8 Y
#include <QtCore/qrunnable.h> \6 q9 @$ b* x1 [0 D* F% u
#include <QtCore/qthreadpool.h>
4 m' N6 w+ B) K8 a: }
& P7 T% A0 x% `& |. q8 lQT_BEGIN_HEADER3 u) }- A& I9 }( u4 L7 E
QT_BEGIN_NAMESPACE
8 p5 _- Q" W. ^# a" U0 O2 C- L3 \7 i5 N. P" z5 X; L. ?
QT_MODULE(Core)5 W" u/ d& X4 \
3 \9 r7 J! h" v. g2 ?
#ifndef qdoc# o) ]% K5 m2 w5 j
7 y$ `* K; i; l0 j+ c6 D' y7 |0 O: e4 a
namespace QtConcurrent {
2 v6 Q Q. [# P1 w3 z4 A0 t0 D/ z( K' n9 I' L$ X2 c2 o1 L
template <typename T>
2 }( ~. H# b6 {: estruct SelectSpecialization
) f, W) a. H. r+ O2 O" N1 r{
; _( n. D7 x- X" X# i0 V6 C1 L template <class Normal, class Void>
8 a% U' ?' \3 B: w struct Type { typedef Normal type; };
3 i' h1 y( o- Q) s7 X' }};2 r8 J0 r, X( M) b y
( G7 ^# {, B8 a, b3 ?3 V1 [template <>: z a/ S+ A9 G, I. J
struct SelectSpecialization<void>- Z6 w! g/ C5 h4 O
{
c& |: I( z* u* F ~% b7 l template <class Normal, class Void>% u$ Q/ \, W9 N
struct Type { typedef Void type; };
, H" H5 M: z% Y1 K0 F};
. s- h4 n# }6 E
0 L2 ~' `" y- k/ }/ v7 Ctemplate <typename T>
6 \- V8 F+ E/ d/ c1 K' Iclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
+ y% B. @% r1 M; L; z: j{ |* ? U( i/ h% h
public:
! t) @& _2 o1 T1 {6 ^( i1 S# A QFuture<T> start() ~1 e" F8 f( S' R
{
2 t( M' p8 i4 M6 U3 o' D this->setRunnable(this);4 }8 d- C5 i. f" B L
this->reportStarted();
. o# I' j4 R5 @8 o7 j2 g! G5 \ QFuture<T> future = this->future();0 P! s5 g }! ]* m# H
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
% [# S) z5 H9 ^$ U; Q+ m C return future;8 M5 J, \+ G9 t* N# r, ]* S
}, m1 h! |$ d( _6 n; m* k
6 }/ {6 I$ ?; M, {- J* } O void run() {}$ N4 f# {9 W7 S( R7 A2 ~" W
virtual void runFunctor() = 0;7 `7 C* b9 F# [7 k
};
: b( A y( O/ a% z4 ^ G. A4 Y, b
template <typename T>& ^5 c5 q) ^ S q. M
class RunFunctionTask : public RunFunctionTaskBase<T>
( G2 B8 F w% D{
# c* R; B% w" t1 c/ x7 F! _/ y8 ypublic:8 H! o2 X* N1 x$ c2 T j( V5 T0 `
void run()
# H4 C/ d/ ^9 K" n" G" ?- K {
: \# J# r, ~7 o6 E. y6 }" P" o if (this->isCanceled()) {# A! [- U' M: y8 \+ ~+ g# `
this->reportFinished();$ V1 i6 J, a8 x# T4 u
return;
9 t4 M4 C+ x& S }
: J) Q3 y6 e. m' f+ x4 ` this->runFunctor();
- E* T, T ~! W/ ^0 H) B8 {0 ] this->reportResult(result);
1 U/ m; O0 ^3 E7 {/ O this->reportFinished();
$ E. e9 j/ U- V2 V }( l: n/ G) r$ |+ m' c) c7 Z3 f1 G
T result;6 A$ M" q$ T! }. N0 E1 q
};
* f( A* d- w% H7 u8 N6 t$ o& }& K q5 h0 j$ l
template <>
1 f4 v9 A# N9 Rclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
& U5 R4 g4 @' }& N* T& G{
0 V; ^4 ~7 F" H3 [9 qpublic:
% v0 W5 f, F5 D, A3 o7 C/ ?- {: { void run()1 ^; w) {& s1 t- A' d
{9 H4 T4 y5 z# u' N% X" T
if (this->isCanceled()) {
! e) S% P! D: w" m- ?- Y this->reportFinished();
7 N1 E* t- F% S return;
3 {: P7 Z$ Y$ d }7 h. f. ?3 R. I# @4 D/ D/ W
this->runFunctor();0 s2 u; A& Z4 p
this->reportFinished();' A8 z. W' ]: a) t
}
. I9 m& y/ w" q+ m1 f};
( P) i( T+ E, {5 I/ z2 U
4 y _' S' d( G! A3 A" j( K8 `$ o5 ~$ i} //namespace QtConcurrent
) X* C4 c, T8 T2 Q3 z+ e4 k
3 O1 z8 T/ }! l+ v#endif //qdoc2 |( K* O6 e0 B. |
" @& Z. _* S" k+ Z! `, `0 l' \" tQT_END_NAMESPACE
w& p4 q) _. I/ I) G) KQT_END_HEADER: H8 a; [0 Q; w; I' t3 R$ ?
* N& P0 e# a2 y. F" w3 c
#endif // QT_NO_CONCURRENT: R* `3 I3 ?! n
' H( Q4 s+ t& R8 l#endif" l9 M6 H$ X. A, n- u' e/ L, `* f( f
) ?3 i# p6 m4 e. A( [& _ |
|