|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
# n$ U& s0 v3 i6 n/ g! S) z. 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'8 V$ P7 I$ g# J# t5 d) C# `' W
# o" V2 g$ v4 Q) k% J这个头文件内容如下:& \2 ?4 q. Y9 E8 L$ w
#ifndef QTCONCURRENT_RUNBASE_H, X6 Q& P4 I5 M/ m6 q$ N
#define QTCONCURRENT_RUNBASE_H( P, d/ T6 i3 U0 g* v) W, K5 F
4 g/ ^- d p: q
#include <QtCore/qglobal.h>
% i' J' P1 m% o" m( ~
W* J0 v5 [; a; t#ifndef QT_NO_CONCURRENT4 c k# B( j$ {3 I v
& N: e, Y& f: J2 {) \#include <QtCore/qfuture.h>
$ u3 x: y3 X8 b! I#include <QtCore/qrunnable.h>
" j0 C' k. {! h' f+ b/ |#include <QtCore/qthreadpool.h>
: Q8 \+ n; }, y, o
( \+ e3 r) L' |; XQT_BEGIN_HEADER
* f6 Z' @$ }/ f/ H4 l# X, CQT_BEGIN_NAMESPACE: [. C, ~# _8 ^' X$ x
# |/ m+ y0 t# k6 q% i1 v+ |QT_MODULE(Core)- ]* s* [1 E$ ^" g, x H
7 x" Z2 D; P5 F' o: ^4 B1 M
#ifndef qdoc0 a" x7 C c# x: \
( k; P8 Q& `( _& K. m
namespace QtConcurrent {
. j" E* ~ p; y2 V- e w) c9 y
& @. ~: ]2 V" t- Ntemplate <typename T>/ V( t7 D! r$ S, G
struct SelectSpecialization/ O6 ~, b6 O( L. ^5 V; F
{
. K9 u& U2 m) P( c8 l+ _* e template <class Normal, class Void>
% A. T8 U! B& ^2 f! E struct Type { typedef Normal type; };
* k' ?" _+ Z8 _& I4 A, a};
7 v% p9 h4 \6 B2 f( |8 Q2 V0 M* |$ L
3 s8 q" i, x% W" ~3 Vtemplate <>1 l/ P- {0 t! A# b
struct SelectSpecialization<void>
0 R6 S6 Q1 G" @7 ^: ?5 l: f7 \{& U0 y2 @3 |4 n# c2 a% c! s; z/ A
template <class Normal, class Void>" @/ K) [. q8 i5 w" W! f
struct Type { typedef Void type; };
0 Y+ @$ f8 u/ K% M1 J# A, k};3 B; z% }3 \1 g) t' Y. ?4 O: J6 l0 h
- L+ J$ t' x+ u, n2 T5 E2 o: L
template <typename T>" J6 S7 m; ~2 E! c5 T
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable$ e$ g: z/ Z* k; Q/ b
{
$ t- ?, v9 k3 y, \! M. W4 `public:
6 G0 K3 R; R1 j( Y% A QFuture<T> start(). E8 ]. d" w4 j3 j; _- M% z! D
{$ T3 ]: b3 ?9 W- P
this->setRunnable(this);
8 V5 G! E2 G1 `& }& B3 B$ R this->reportStarted();
$ R& ?, V! V& n, e QFuture<T> future = this->future();* }' Q, y4 P! `/ T0 U* W! e
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
, ~) J# R# K( X/ O c. k& C return future;
# J+ h( v2 b' P, X" {- ?) E7 @! d }) b% k7 j; S) q! w+ P3 Z- I5 U
. @, T8 k8 \/ @5 e, I3 [1 N2 N void run() {}2 e; f( h0 a* P4 r
virtual void runFunctor() = 0;
) I x! J; `3 D3 C( j4 a. v};* d! T8 s# U. [6 s
6 `. {5 s7 g3 t! d' f- X3 \template <typename T>
2 O5 V# Y0 i. r! F8 Y# Vclass RunFunctionTask : public RunFunctionTaskBase<T>+ s4 g e' a5 I( I- ]' }# `! N. y
{, }2 W; ^$ q; E- U m: e0 K
public:
8 Z( Z2 v E7 `8 j( d void run()+ ^2 x7 d: P6 T8 P+ p
{
: V2 t# W# X' Q4 q \, k+ G( ]; C' t if (this->isCanceled()) {8 S) ^$ B% H4 i
this->reportFinished();
0 b$ s$ |3 s8 h6 o0 M% w- a" \ return;
8 W7 S" y$ l6 g- H, m }- H9 P* M( {; M2 j" L1 T! V
this->runFunctor();
# j+ X6 z0 M8 R2 [0 V9 i this->reportResult(result);
, \+ ^3 E7 E: D9 n this->reportFinished();2 i) o! O0 F& h% k
}
4 i3 d; c V# A. |) ^. \! e T result;
& i6 n4 }2 f d C1 N. E};
4 D% m, C0 F% W# m% }2 u8 d! F) g5 g
template <>
' P) p/ w' u2 s$ g1 \+ jclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
& q9 A$ \. R4 h' K" Y{2 t3 v* B! Z7 V. _0 J
public:
" {9 F7 {4 }2 H void run()& |3 d( X! U3 K3 N% U6 t. Q
{+ G* G8 v H7 _5 E, b# G! i- r
if (this->isCanceled()) {! z! [4 x1 f; n* P
this->reportFinished();
$ D! r' x1 Z4 b8 U# z) O! C return;; q' d8 ^8 O4 |) O. {
}
# h2 N( N1 x% a8 P this->runFunctor();
$ u, T+ y1 q& w$ ?' o this->reportFinished();
& d# x# v; n1 y6 O" s9 w) t }
* ^3 C8 E! M0 P4 ` s};
& G9 Z4 f, o. _! X0 H& x+ x0 S4 I
} //namespace QtConcurrent( T$ n2 u: f" f0 f6 E$ |1 Q! l
& p. w0 K* ?; J& s& Z0 x#endif //qdoc
: p9 t6 [ O- ]( ]& o- z
+ o8 g8 s, W2 ~2 U, l8 H8 v W5 [. UQT_END_NAMESPACE
* g# F7 S: l8 T# Z8 @$ C: |% HQT_END_HEADER
, w9 L9 T9 U" m+ f, e
& h9 [6 L9 a1 R9 z; g' m#endif // QT_NO_CONCURRENT
' b) Z1 D/ y$ h: H; ]
- J0 }. B+ r5 |#endif+ s7 J8 I2 Z3 f7 q6 n
2 X1 o s& U! n8 }$ g |
|