|
|
我对syslink进行交叉编译到arm,但是出现如下错误:9 D/ C: ~; H& P: r6 c
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'5 C2 Z" N& K3 i t
! t- T. l$ r+ o+ e) J
这个头文件内容如下:9 K: n4 v0 f; X: e# a! s7 d F
#ifndef QTCONCURRENT_RUNBASE_H
; `5 r& C4 k3 m) X#define QTCONCURRENT_RUNBASE_H- g6 R) }- N! }9 T% w, O+ D
8 C( {6 P6 w' \, Q
#include <QtCore/qglobal.h>- @4 U0 S: r3 X: Y- S1 W% _* L+ V
! Q% X' F5 n* R) v' C" q) j8 |! ?# Q& r
#ifndef QT_NO_CONCURRENT
+ d2 |+ r. k- P
( c0 P& T; w+ ]# ^5 U#include <QtCore/qfuture.h>7 C: v) q r V" R$ V1 v1 d
#include <QtCore/qrunnable.h>% _* }5 a: `) W( C6 o+ Z! x& p
#include <QtCore/qthreadpool.h>
6 w; C. Z& g v) p2 p0 w% b
# g/ @6 S6 G0 W( q/ A% o* o* f' h& pQT_BEGIN_HEADER
5 |( l- |0 k% w9 D, AQT_BEGIN_NAMESPACE
- ?) t2 S; {# w( @. r, L9 {
! Q3 j4 A) E" cQT_MODULE(Core)7 Z! X# g/ ]( O1 J6 i7 m9 v
3 v8 p( N" [% L7 [1 E1 e#ifndef qdoc+ l8 o7 Q1 v7 r! Z
" K- D( P. j. v4 Nnamespace QtConcurrent {
! N; w* {8 ?$ _6 }5 @1 `$ j8 r4 n, \) q0 [( Q4 u. J# z e$ w
template <typename T>' }8 k7 H8 m1 X# o
struct SelectSpecialization
) ?. O. C4 n! X! u; e{: ` T# c# b6 \3 b% {# }, S
template <class Normal, class Void>
9 a6 j5 n* o' t struct Type { typedef Normal type; };
$ R8 B& _. N, \9 n$ u: j};
# P+ h0 b. V) ]4 w& A4 u' j+ Q: ^3 K! G
% _9 D' Q5 d1 c' x: Ntemplate <>2 N2 I& s* K' I {" Y% N& U) A- l
struct SelectSpecialization<void>! N' Q0 I r L' ~+ n6 M, }/ q
{
6 _8 {& A% h7 p. M template <class Normal, class Void>
. {" V/ G8 S; _, ? ?2 L4 h+ M$ ] struct Type { typedef Void type; };4 s1 K" @! L0 {/ I
};
# t. J K$ @& [" @+ T6 r A5 H1 N% @3 L) ~
template <typename T>) ]& U3 A5 \& W$ r
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable& M* h# M, V4 a% G$ d5 ^% w- L
{
7 T2 `0 \' M8 Tpublic:
: ]6 l3 L/ D( L# p QFuture<T> start(). K1 d3 ^8 y9 z$ u# b6 L
{1 z% b& ]1 F# S$ J% L; ^0 J1 h1 t: n6 a
this->setRunnable(this);
, d. o! L" F) y4 |7 f this->reportStarted();
3 d6 z0 x! I- I5 f+ `" _( {% v QFuture<T> future = this->future();, b7 k- t a. c1 E
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
/ @8 l+ M4 v/ |; x/ c9 G/ i2 S return future;
. e1 i& |+ E9 e }% R7 `2 C3 C7 h4 e* e8 r
0 s. I: @* F3 U B8 D9 G q3 ]
void run() {}& K. @) r Y1 n' z
virtual void runFunctor() = 0;
% t- v$ t9 n6 E3 a7 P. ~};( x( h9 `$ g2 r! z
, X. ]3 k6 a) I1 G. F* i
template <typename T>
1 ]" `! v9 r( _$ O- r6 l' g5 aclass RunFunctionTask : public RunFunctionTaskBase<T>1 @( ~" c, Y, N7 a A
{
& s# D. V# N: n* j) ?: j' [9 Wpublic:
# ^ Q' ?* Z0 L) h7 g4 U2 X* M8 _ void run()7 A; F5 u3 ^/ w4 U
{
8 E/ }( G0 {# @5 G if (this->isCanceled()) {" ]. B+ \9 z1 @0 h" e6 {
this->reportFinished();$ v" G9 M3 ?0 c) X
return;
6 h4 X$ M* Q, K# g5 D! ` }
8 @5 G( F' }6 W2 _" s, B: ` this->runFunctor();4 Z6 s9 L) d/ l, t7 s
this->reportResult(result);
2 j) G) |9 H/ F- m# k( }. v this->reportFinished();
9 Q- e4 _" {0 e$ q8 ? } t% H0 I/ k# I5 z# N
T result;5 i5 r& M1 V" s1 n' K) |
};
3 |) D6 x" ~ f8 q. o3 m9 p" A; i6 l: s; F# a" u$ i
template <>
' Y8 |3 z* a/ _# jclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
% q$ f: u# p5 z$ q4 F6 x{
$ F+ m8 M4 {9 Q: \) ^8 n( Ipublic:
" w4 E( W- N, U6 ? void run()
. Q9 W. O& s/ @% G, D* G/ i {9 B. H# M6 q1 t6 H' M' g
if (this->isCanceled()) {
( k( u9 p: P& ], ^* R" M, f this->reportFinished();2 D: r9 e: K9 z6 m
return;, ^3 w: w3 Y4 ?3 T& A0 i) v" ^9 S
}
7 |7 D8 [4 X! e# @' s% ^; g0 G this->runFunctor();
7 H7 v1 ?* j& n% E8 m1 S this->reportFinished();' ]" x: s0 C7 }8 E+ ]' T6 j
}7 R l. d+ y/ g& M
};
8 m9 }& M. m: O2 j/ Z4 T' X
# K* _+ P4 @( G9 D' l6 y) P} //namespace QtConcurrent
1 t4 z: I) e& S/ ~: m, w2 N) V5 a
' \8 L- _+ c; [3 V7 |#endif //qdoc9 ~! j" n. B1 [8 L/ j1 A
% i+ n) l" W6 t5 I4 O( q6 V( FQT_END_NAMESPACE6 P" t, P& p5 O- [
QT_END_HEADER
: X! ~' g o9 v- n6 r; N
2 G3 W* I" {2 |4 h. @, M#endif // QT_NO_CONCURRENT
: G( ^7 i1 t+ c4 n b$ ~6 I9 S5 j, S
3 [' r) m- x( z8 w( E+ A: ^% T#endif
+ B9 w# H8 x, o \4 b1 `4 ] a; K/ O& v3 Y
|
|