|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
! w* O* n4 G; Z. r4 z: H5 B/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'/ I) ]0 n: `( C( B3 R; g: {
H3 Y. }, j; g) Y+ A% g
这个头文件内容如下:
& c7 D# x2 E+ X" z5 o: T( }% t#ifndef QTCONCURRENT_RUNBASE_H$ n/ o) K& S( e% B! l
#define QTCONCURRENT_RUNBASE_H: ^7 G+ o4 J8 Q+ c; J _# A9 a3 ~
6 w# N- v. T+ h0 n
#include <QtCore/qglobal.h>9 g. u2 |( i5 X8 K8 X% A1 V
# f4 @2 Y6 C; \6 q6 o% ~
#ifndef QT_NO_CONCURRENT- J N+ ], |# P7 Q: t6 {
, N3 J9 \; @# s% @#include <QtCore/qfuture.h>6 C: Q. Z# y2 @* A
#include <QtCore/qrunnable.h>
9 V p: Y- T( ~#include <QtCore/qthreadpool.h>0 [8 o# [% S" u/ Z/ f
3 d. T) |8 e {QT_BEGIN_HEADER' E6 d: Y+ d$ g5 |
QT_BEGIN_NAMESPACE" Q$ X. u5 F9 z
' V( i" b2 {3 D# P$ _. [+ y
QT_MODULE(Core)
3 B/ ~8 `. P, o) I! Z& a
# ~$ g. M2 X0 |% v#ifndef qdoc
! \0 S9 j: Z1 d3 x) L* ^* ^
% ] Q8 w% \1 D. q9 C8 Rnamespace QtConcurrent {2 B" l: ~, K+ L
: e; {/ g. ~& W' jtemplate <typename T>; u7 w9 U. C& ]5 V+ R3 m/ c; C
struct SelectSpecialization/ B. p# e4 [3 `9 c( ^
{
" c: ~% N& K6 a4 O- m- F/ h5 m template <class Normal, class Void>8 R; _6 i5 ], a+ b6 u0 d4 u B
struct Type { typedef Normal type; };
. ]) `8 f4 R; F0 C; A/ O};
6 V3 h7 o* E+ L$ s: E2 A; j& ?$ t9 l- V! V8 O
template <>
' j) \! C" c# f$ Gstruct SelectSpecialization<void>
. [5 o& f+ [# k$ L; u{ `4 _7 \9 L+ O
template <class Normal, class Void>4 m9 U4 T; i- ^6 c$ g, u; P
struct Type { typedef Void type; };( M& \- {+ d2 r) s: x4 G
};& c) L- p" k- r6 C; x; M
; R0 _/ ~% R( s% |
template <typename T>0 i! V* s2 M y2 D; p- W: ]: P
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
6 K& K) V1 L, J{& V/ q4 T5 q7 U" n! Y6 V) i
public:
2 N# u3 K! R! J9 x: p6 A; T7 s QFuture<T> start()
: ]& A. u2 D4 b& h2 G7 A {' {9 A2 W8 N# E7 `
this->setRunnable(this);3 J8 E; G# ~; X. R% @- M
this->reportStarted();
) w( x' f$ R6 Y9 P7 m$ H/ o QFuture<T> future = this->future();6 Z/ s+ ~( M- E, x" g4 v/ q
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
( x/ w7 i9 T- H! Y8 w5 a return future;# q- h' P* p( p+ d
}
; X4 }2 A, x, t( z. ^
, p- N# ?; E, O4 ? void run() {} E$ M4 p- |$ o+ ^+ L" v
virtual void runFunctor() = 0;
6 N& B' D X2 [5 @* Z& c# B};6 O! \2 E. j. A% S$ V
2 E! i4 |( g2 G0 x3 I! }5 z6 l; Wtemplate <typename T>
$ R+ O6 ~3 J4 c) c- I5 U- e6 Hclass RunFunctionTask : public RunFunctionTaskBase<T>+ s7 j) e( n+ S2 e
{+ |) o2 v+ O* M3 `$ q$ ]
public:
+ r$ z( _& w$ J! e/ z- t void run()7 K6 h5 d* O% _( X. e! \
{
) } T$ z2 e6 A" v if (this->isCanceled()) {
, Y( K9 e. H% y0 h t this->reportFinished();
4 j" n' S6 K6 G4 ` return;
- P! y; ]: W$ t s% q* q% e }& `* y0 L, P! |' g7 {5 Y
this->runFunctor();
- g- n4 H, [+ U J this->reportResult(result);
: p& o+ ]! q) `8 t this->reportFinished();! c3 y# G+ j8 {4 n) b1 d
}
8 b% H" o, p- _4 `; M+ ]( n- t T result;2 A( g+ R/ ]! o- I% @
};/ `. Z9 l6 w. n, O$ \- N
" Z# G/ |9 d1 o; etemplate <>% N+ K, _% ^7 A1 H" E# s
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
5 m$ d/ c. g- J{
# u: t6 g L; B6 R( E. ~public:
/ B, \5 |6 z% o$ J* a2 M void run()
. O+ G" _2 u* A3 X; m( ~ {
9 r2 Z) J7 Z* S3 M7 |' t8 o if (this->isCanceled()) {
9 t7 D& G0 ^5 H) k9 ^0 \4 G( B this->reportFinished();
% x" n, @. L y2 A" K return;0 }. j% f- l0 S- ~% F/ U2 c
}# X0 y! s: m# O3 k X) V
this->runFunctor();
, P r# l N3 m this->reportFinished();
( G4 n! ^. C' f8 y; g5 \, I+ T }8 n; _$ W8 E4 f' y5 W
};
$ h+ M; t+ ]+ Q4 ~, n/ i4 `5 j/ _2 ?% p2 ?: Z
} //namespace QtConcurrent
) k2 @8 p4 N9 {* e% \, T) i) M
' T3 C" G, w2 c. `" A! G, z- Z5 T#endif //qdoc
2 k0 y/ W/ f1 E) K3 u
% W% s. x. p$ H1 AQT_END_NAMESPACE; o4 S. y+ N7 [: w# s3 B4 M+ Q
QT_END_HEADER# S( w- H) M* A8 F4 @4 c; L: [9 ~
' H1 e$ V; d d$ G0 [3 D2 C$ E; u#endif // QT_NO_CONCURRENT. ?4 {5 ]6 M# j, a8 p# v6 E" m7 ?
, G6 Q( D6 k& |7 Q; s- e( H
#endif
7 r e& V) P4 k* ]# D: @- ^' P% b7 o4 A& {
|
|