|
|
我对syslink进行交叉编译到arm,但是出现如下错误:1 |: I6 M) e& d; l0 y, O7 u( Z) l
/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 L- G' {6 {/ o; | M0 j2 |$ E1 n7 E+ H4 c! Y* y7 D! e, H# d. q8 {/ S
这个头文件内容如下:
. B% i% T: n7 G( j' W2 j9 z. G#ifndef QTCONCURRENT_RUNBASE_H% Y+ w$ \0 y9 T% }1 u
#define QTCONCURRENT_RUNBASE_H; K3 [) [" s& P3 q
, \+ Q5 B Q: {, X: a' U6 X
#include <QtCore/qglobal.h>( i/ P, K; G* l; V8 k
" y5 X$ b0 o: X. h4 _' a% {
#ifndef QT_NO_CONCURRENT; {/ j3 @7 U/ ~8 n6 m
# }- l0 B+ a1 c8 e0 ?- R' \
#include <QtCore/qfuture.h>
0 L% [* \, O3 `, Z#include <QtCore/qrunnable.h>5 d. y; |1 u5 l, m# M% ]8 F
#include <QtCore/qthreadpool.h>
: B1 q: }; m P* {1 j \* P, l# a& U( U4 c$ a" @& B& I: W& g2 i
QT_BEGIN_HEADER
& F; J& V* x0 B0 U( V4 dQT_BEGIN_NAMESPACE
2 w: A6 S( d2 Q' Z4 o$ ~( L6 h
; ]5 i7 h$ {% `! a$ BQT_MODULE(Core)
5 h2 S5 ~, n8 L' r" a0 ]5 R* U5 t3 M* ~: V4 ?
#ifndef qdoc7 ?/ v1 z; I' t8 _9 ?
" a6 n9 B) m$ u: @7 N6 L) }+ bnamespace QtConcurrent {. s; A) U+ _) |8 q
( Y9 s4 v$ u) C6 I3 b3 ~* ` M
template <typename T>
+ U) N7 I( G+ B: J' [5 ]5 n Wstruct SelectSpecialization
& a% _7 E, C* }7 b+ l# |{
# ]0 e# n# f6 i6 v template <class Normal, class Void>
+ ?0 P8 r0 K; y: G% q struct Type { typedef Normal type; };' L- h! ^, m5 i$ z
};! s( p6 ~& _* i g3 k6 |
4 G6 w+ D/ C" i) D2 ~
template <>% U( Y+ o0 d9 {" O2 f$ j! t) H
struct SelectSpecialization<void>& Y8 c% `0 ^ s3 K/ k- ^
{
5 }8 H5 p9 H2 a& x( h; \ template <class Normal, class Void>
; G. l: p( B1 n8 h2 | struct Type { typedef Void type; };
; |+ K9 ]+ A- V7 r, q& i$ W};% X+ V& t! N2 b2 c# ?
' A+ ]- r9 J( J% Z: X5 jtemplate <typename T>
/ f- K4 ~- L4 {5 P7 Cclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
* N7 T! N9 N' T{: l) D2 o: L1 O
public:
) z2 E1 p$ z+ U. x9 h7 ^1 w$ J) r QFuture<T> start()! v) {! O' m. { ^6 o6 ]
{
0 P, `6 w" O- i2 { this->setRunnable(this);* K1 K$ u3 H3 N& z9 c
this->reportStarted();( X, {- e0 x' U' p, r& V5 ^7 ~
QFuture<T> future = this->future();' f2 K6 G0 `# [$ q
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);5 L: ?: C8 _- @
return future;8 [- R0 j/ F* o8 O' [3 @ w+ \
}/ j1 _ e# ]; M) f
5 |5 m/ `2 K7 L$ w" h& h( U
void run() {}
I0 [9 `) x+ n% v$ G& H virtual void runFunctor() = 0;
1 g5 ]5 F* V! s4 W# M};8 ~' u, Q L( I$ p7 |* Y- r- _$ q9 A
+ d* `- j: U: E ^; J$ A# f8 ztemplate <typename T>7 w9 `; q; d6 O7 x9 l7 p8 O3 s7 j( o
class RunFunctionTask : public RunFunctionTaskBase<T>
0 C% `3 t, k9 G; E& K{5 w$ f6 @0 R9 w
public:
7 \% W" ?5 l. p# Y void run()
' f; `* L& c" n, ~& B5 U8 U {$ l/ h( o8 v# [3 {
if (this->isCanceled()) {& x& h! L, I- t6 E7 P4 f
this->reportFinished();
" e% b: F" T2 @; z return;/ w5 q# h; C- ]/ k
}% e1 q$ V& b, p t& n' I& ?
this->runFunctor();# [0 ^0 T+ q W! Y+ A8 V/ ~1 M
this->reportResult(result);
. ~3 H% K3 F3 k; m9 e this->reportFinished();! k* ]- C2 A- h: W, q* `
}/ w2 o$ a' `+ P2 k9 Q8 k' h
T result;
: N/ B; V5 d& H};. V, @ T- Y# y6 G4 U" F( G s
4 H1 L c7 M0 ]# V9 ^3 ^template <>
5 i& ?+ v. s5 D. _! ^8 nclass RunFunctionTask<void> : public RunFunctionTaskBase<void> V- K7 {/ [2 }6 ]4 z
{
9 ~. A0 j K6 W* ?/ a# ^public:. m! c) {+ K! H
void run()$ }% h% ` H) w) G" b
{ o) J, L: p2 f7 [9 Q$ g- M h: U- [
if (this->isCanceled()) {/ H) N) Q+ F' W, \; @1 {8 E
this->reportFinished();8 G4 e/ l, a) \; D" c3 h3 F
return;- H. C/ P$ [ Z! b9 H8 N
}
( A: Y( d6 J5 F, T2 ]3 E. F this->runFunctor();1 D$ B& G0 {& l/ C( \8 t
this->reportFinished();) e; \& C L* z3 Z0 }0 ]/ g- U
}7 s- {1 I5 S' `- }, Q0 z% J
};
8 M6 x6 q( P2 A4 q" q+ z6 S+ [! ] f% q- A$ m3 U8 u
} //namespace QtConcurrent4 G1 g3 p+ P' r6 D
+ U ]2 F( J" \0 Z+ F/ o( n#endif //qdoc1 b0 V" I7 `, ~+ t) F% e6 X6 p. H
8 u" {+ C6 ?; i
QT_END_NAMESPACE! d D* v( \" i% x
QT_END_HEADER
; G5 ?6 `2 |* f* B `0 k) {2 b+ l/ O \2 Z3 x8 o) t! C$ `; T
#endif // QT_NO_CONCURRENT: ?+ v% j# l3 y8 v5 S+ M
) D5 M1 P1 t0 D/ I; G( @, r i
#endif
6 o9 z+ r0 g7 H1 V( Z1 A+ }% [8 M# t6 Q' g/ K; W. T
|
|