|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
4 F. N$ W; W( 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'
. F4 c7 F; I& c. p: G; R* ~8 B
1 h# x9 X/ j* d7 Y8 y: p4 y8 z0 l这个头文件内容如下:2 r' D8 }+ F' ? `4 _' K
#ifndef QTCONCURRENT_RUNBASE_H
, V1 z$ ~2 x {#define QTCONCURRENT_RUNBASE_H# ~8 k5 O8 q' H" S
& g1 {1 e+ Y" s2 C2 w( C! `1 V6 q
#include <QtCore/qglobal.h>+ b8 R" ]. s5 l+ b" L
8 H4 A4 J' {0 H" ~/ Z" I
#ifndef QT_NO_CONCURRENT
8 j' T8 U0 w0 @ e5 O4 D" p
6 B m9 d3 r9 c/ [5 R/ l2 q4 S#include <QtCore/qfuture.h>
* U. h# p8 P1 t4 _1 J* b#include <QtCore/qrunnable.h>4 T, t0 o- I( K$ D: I! S2 R& {
#include <QtCore/qthreadpool.h>
3 n) D: G2 U& [1 T/ ^. \
: \7 ^$ g# M9 \7 CQT_BEGIN_HEADER8 R5 e0 D! l" j/ i) P& z1 Y1 l$ v
QT_BEGIN_NAMESPACE
, \7 i1 Y7 d+ A+ b: q+ e4 @$ l! O9 {7 k' ^9 U4 t" d8 [
QT_MODULE(Core)
- `" X* m3 Y" y
9 L% W4 h7 t$ s% J8 `: i( F#ifndef qdoc& f( N- B7 E. O5 [' I- j
) M) t$ q! y! H+ _, E- F( C! m- n
namespace QtConcurrent {
# t3 t% v4 Y3 M# I4 S& `
; [3 Z9 v: z3 Ptemplate <typename T>6 v3 r( T) k* q3 U" |
struct SelectSpecialization' F% U0 p: Q' M& n6 j
{4 o' p- J7 l9 z. y" |1 ^6 a
template <class Normal, class Void>. {. o- K: t; w: x9 d9 h2 Q& f" w
struct Type { typedef Normal type; };
, i; l) P: N4 \1 S; D8 f};4 P1 L5 U3 O5 E; W3 p
: I n( T1 [4 k. T/ J* v) stemplate <>
/ x5 `; l/ X, G! [6 L+ Astruct SelectSpecialization<void>
|4 u% M+ V& p& ~{# q4 N6 b, E* b5 g$ L" Y
template <class Normal, class Void>2 ?+ Z8 u2 t" O" p2 L7 _: d: X" x
struct Type { typedef Void type; };0 Z# ?7 R" j" n# i1 g
};+ ]: s$ t- f8 {" @
% ^0 ] Y7 t+ P
template <typename T>
: A! ]9 t% i3 S, iclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable; R# h& N3 i) K" ]7 H6 c8 }
{
* @% E6 H: a5 p; O% K1 rpublic:9 D( c, v. T; e! @1 q2 o
QFuture<T> start()
5 V- w+ n9 M8 ^ {
0 d9 C! t P1 v" k$ N this->setRunnable(this);) u- V! l" }. {
this->reportStarted();
8 o4 Z2 `( @! @/ v* ]) q QFuture<T> future = this->future();
# D: p- A6 k1 i! u& t6 m* ~ QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
& g! y$ t. t/ h% q8 t+ P5 \$ o/ O, b return future;
9 v& A- x5 {( O* u: x. v } f* ~1 v& p5 ?2 D4 K
, f1 T* a0 v, K, n- m3 W void run() {}
8 @3 W/ I$ ]( E. ]! _* ` virtual void runFunctor() = 0;
( }0 R, p8 J: A! d2 `7 i' m};
# a8 m* J( L' B/ k& v+ s: I0 i4 _! k" s. i6 s2 _ \
template <typename T>
; r1 r; P7 r) h0 bclass RunFunctionTask : public RunFunctionTaskBase<T>- Z) E. I: y# W6 D" ^+ ?
{/ s. P8 \7 r2 K$ r
public:
/ N/ B6 ^* Z& v) Z( A: F void run()# Y6 |7 N% f4 ~; z7 |- r0 [
{
/ V/ J; ?/ S/ D7 s) k4 O Z! { if (this->isCanceled()) {
2 X8 [% X% [2 p$ {) C this->reportFinished(); V- K: q7 W p; M
return;
( o! R3 T$ ]: |2 j& r H: |2 e, g }- h4 G. F4 k S
this->runFunctor();
% Q. R& H7 k. ^" ]2 a, y7 h& c. s this->reportResult(result);
' d) l$ H( L% i' ?3 b9 ? this->reportFinished();. _5 F& W- x7 I: O2 }+ s4 B% L, ?9 T
}" i) ?3 P9 r, E1 {8 v7 D: U% B
T result;) J, l9 W. x% W( f+ Z2 }! f. z
};5 A) G" k8 j" M% n: a, t) {* M
8 w0 ?, g8 V: |4 c# g2 m1 l
template <>
) G9 h2 o- [' a v5 E" Gclass RunFunctionTask<void> : public RunFunctionTaskBase<void>& _5 \# G Z2 F d8 v _3 `
{
6 R; C. T0 N: r1 t6 U7 ?public:! `/ v; n2 h+ m, J7 s
void run()
4 r6 V5 s' {; Y( e2 @; |2 k C a {9 F* `# H& i' x( u
if (this->isCanceled()) {6 v7 T8 e( R. S- Y2 j; L7 X
this->reportFinished();; b+ d" D+ ~/ p9 q6 c
return;
8 m- r3 {7 P2 D( u+ h6 T }
' J1 c# y1 T% E( Y" T Q this->runFunctor();& q% H2 M# o4 {5 y
this->reportFinished();
+ }" W# W3 q! ^( i7 d }8 b/ O# P) \( k. t5 I
};% V; n5 [3 a" L. W
, q# W! b. d0 R* C( t! K9 J
} //namespace QtConcurrent4 `8 a. M- }6 |% f8 n$ `" m
7 L# q( {# P* K#endif //qdoc& S- Z- w9 ~& N; m( L; l
0 q+ F2 A. ?% k" F* J) J
QT_END_NAMESPACE
E C0 v4 k% ~$ j' b9 [QT_END_HEADER# x% s: g& x% a4 M! ~5 h5 O7 M3 |* |3 _
0 F+ w K* m7 i
#endif // QT_NO_CONCURRENT
' [0 H9 I C* b% n8 n
$ G4 w+ }! N% c4 j4 W5 F#endif U% \2 C# \/ n) E; F
# l: X; h7 K; W; C( \3 w/ d |
|