|
|
我对syslink进行交叉编译到arm,但是出现如下错误:1 {2 D6 _. W1 R( }
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'( l$ E8 T5 E8 A7 C/ z2 s$ v
4 D2 G G8 |( g) M5 z0 H
这个头文件内容如下:
$ Y1 t C# u9 `) R- M' i% k#ifndef QTCONCURRENT_RUNBASE_H
4 N c+ ^. T5 n" U5 X#define QTCONCURRENT_RUNBASE_H, U- N, l |5 F% g* M0 g' P
9 B' h+ K9 h* K3 ^! s& S#include <QtCore/qglobal.h>. G; t3 o8 {1 k3 e
. B% Q& @7 T/ F5 u" _$ n
#ifndef QT_NO_CONCURRENT5 s+ }0 [: T6 R& s2 m
6 B- _/ j: o$ e j5 G, w
#include <QtCore/qfuture.h>) F0 X* h6 X. C. L- _/ k8 O
#include <QtCore/qrunnable.h>) v0 G0 x) n8 g) f! y ^
#include <QtCore/qthreadpool.h>
$ D; ^# k& b) p# o: X! d- S+ E7 I7 G# B: p/ K# w' k9 G5 }5 `
QT_BEGIN_HEADER
) _7 k' U( }" A) C( p* NQT_BEGIN_NAMESPACE# R' K" L) b& f3 ~+ b" l* ]: T
' V; Y' }, U% R0 E) h% D
QT_MODULE(Core)
9 j/ n& ]! l, Z" x
5 `; g7 u2 p4 ?" z#ifndef qdoc
P+ |: N- D) z/ d
; e: p9 v- [: I2 T; dnamespace QtConcurrent {7 F) h* w6 Q, P4 D' Y% S( S
7 S3 x, y$ }; ^; [8 ~8 w, S* ztemplate <typename T>
" b6 ?( Y. s4 u, _) c8 Nstruct SelectSpecialization; |6 x$ Q. s! x6 a8 n; A
{
6 j3 A4 \( W4 v4 T9 r4 N- D- w template <class Normal, class Void>+ V0 E, D; f) r& U8 R5 n
struct Type { typedef Normal type; };
& M4 v! F; S4 U};
0 {' F0 M7 H. S* e0 {5 p% e: O r+ i6 J4 t2 W
template <>
0 n. l$ H) s6 _: ~& m5 }struct SelectSpecialization<void>3 ?! i9 F2 C: Q3 [! ^
{
! {+ I2 _* @4 Y. b$ T5 M template <class Normal, class Void>4 A( O0 A0 F$ q
struct Type { typedef Void type; };( C/ I) E8 w3 I2 ]" [$ G
};
( H6 j7 U2 ]! h# [- o& D+ u% {
9 N5 i, K( U L) _template <typename T>
/ }# @: d6 j8 N' Z9 r; ~' x2 Kclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
" Q! l% Y/ W/ z6 h- V x& u& L6 c{0 z9 b7 f0 u n& H1 |- i
public:
$ W5 G4 I: `0 ^3 s' Z+ N QFuture<T> start()
: r* z! f4 P% K {: d/ [. E; j- M9 W2 v
this->setRunnable(this);
: i! C7 V4 H& L# N6 H this->reportStarted();
4 } b/ ~2 b$ I- q. S QFuture<T> future = this->future();! b% P9 s( d6 v$ S4 } W! c
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
! X: _: i4 I0 F. O- v return future;- ~4 e4 u6 h% E& y2 L' w
}
2 \7 ` m( I1 y( k; u2 L9 Z
! W) S1 [/ ?) o7 A void run() {}
9 S% Z. J) {2 Y5 g virtual void runFunctor() = 0;! k7 y( v$ K$ C6 r- _/ ?
};
2 m5 \5 f2 J/ p8 J
8 z0 l M6 Z4 V; ]% i% M- qtemplate <typename T>/ N) E5 j& b+ A3 j
class RunFunctionTask : public RunFunctionTaskBase<T>) \1 k Y7 p7 o, D0 ~
{
4 c" @0 y* L% |) vpublic:7 C- P& D1 X+ w& ]
void run(); d7 G( L8 a* z8 R$ V, a# l
{8 ~, A! `# @$ i, r9 R" Z: ~3 o5 U
if (this->isCanceled()) {
/ n' m7 p1 v5 b! ?* |! @8 U+ } this->reportFinished();: r" o& w+ X5 J; ^0 Y. _5 N
return;
$ `- e- X g8 c9 p6 r }
7 ^- V& R D* E5 U; P& M/ L/ P this->runFunctor();+ x) r4 D; z/ D8 E0 G" I$ j
this->reportResult(result);# n+ e5 J+ Q7 P+ a& B* f" M
this->reportFinished();
" A. J2 ], g- K& x1 J* ] }8 M; F3 k) K4 B/ ]; x
T result;
" ?7 N8 ^6 `7 {, |0 g};
8 y' {0 T9 K X4 y# ?
3 o7 S# r) e8 xtemplate <>
( M: s; c/ S, L3 b" xclass RunFunctionTask<void> : public RunFunctionTaskBase<void>" w7 X4 Y! N6 l- E' A
{
( Z3 j8 s. B2 E1 U8 v9 L" G) zpublic:( @% i5 U# f5 z9 Y4 e
void run()
0 a! x0 _5 t! ~+ \ {
5 e" c+ P* U g' A q/ ~ if (this->isCanceled()) {
7 A/ G0 W# e& z8 c N this->reportFinished();/ v$ a1 F5 k- D) p6 G
return;+ y/ b% f1 s9 g7 s, z
}; @7 g6 V! {2 a7 E* _% Z' u7 `
this->runFunctor();* A" w$ w! P1 m4 r% H
this->reportFinished();7 t# u* X1 u. x' }, {
}
2 N0 y; _( |6 Z# V: Q: o' [};
, P" `: h: e1 P2 w; X2 q
% o$ |+ r# G+ F0 f; @) q} //namespace QtConcurrent
, Q( R( t. x/ O6 O% K( e0 b7 ]; A1 K& f- E7 B- l+ o
#endif //qdoc0 q+ Z" L' @. F: g2 G3 ^5 m
2 R5 A- S9 i& j" R
QT_END_NAMESPACE, Y2 G, B6 }1 h7 p s
QT_END_HEADER
$ S$ N0 K$ {4 I: H: q/ ?( F0 ?, G& s. Y* S4 y( i) L# T5 b5 c, W0 J! A
#endif // QT_NO_CONCURRENT) v! `3 J, U- b/ \- z
$ `" X5 `# ? W; S; T
#endif
" J# J' V4 l# z! E0 q( O5 L2 S8 j* C3 Z5 V& z
|
|