|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
f2 E) U# h- ?" N3 ^/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter') b2 d9 ^/ z6 [# T
( g% N) e% v% w1 [; f6 s2 m, l这个头文件内容如下:
! z9 [. T% c" T#ifndef QTCONCURRENT_RUNBASE_H6 D4 c& a) j$ I, K1 [" E6 O
#define QTCONCURRENT_RUNBASE_H* d( _9 I4 e! T$ F2 }% M" M0 s9 c! @
, I* E+ I% J" h#include <QtCore/qglobal.h># T3 H" O2 r. p: P( C
' b+ X; p" j% j$ {0 x1 _& l2 Q# ~
#ifndef QT_NO_CONCURRENT8 B8 t/ E0 a0 y1 o8 o, j: ~
0 o- q6 [& l/ w# i' D' c- U2 [#include <QtCore/qfuture.h>
% x/ q7 X1 n* p8 M6 m- l9 e+ m9 J#include <QtCore/qrunnable.h>
1 J! _5 d$ J, \ E7 J+ v3 z#include <QtCore/qthreadpool.h>
- F$ S& C; ~* j8 ]- Z$ t* w+ }& `
QT_BEGIN_HEADER* G8 D1 L( Q+ B3 q/ w2 y% S7 l
QT_BEGIN_NAMESPACE w0 Y6 h) k1 T
6 l9 {$ C* h1 O% J8 D. z
QT_MODULE(Core)
6 e& |. A4 z! l$ X* W8 |7 A0 t7 [7 S- A
#ifndef qdoc
$ d) X; j# h2 \* U
2 `3 ]7 k! ~- C+ `namespace QtConcurrent {
/ b3 Y) L/ N6 \( R# S7 i j! @ J8 H7 f
+ n; v0 g$ m8 z# u4 L* Ftemplate <typename T>' d# m% j: I4 D9 \, B: K& z, \
struct SelectSpecialization
+ e8 ?0 d; D3 c7 ]- R{
2 C/ A' x( u- W6 P/ \- f3 E template <class Normal, class Void>
6 \% S% M3 v/ p- B struct Type { typedef Normal type; };
1 o& S* ]/ t6 b$ l6 Y! g4 e};* j( E, ]# \" e4 i7 L
5 i) n# D4 j7 V2 T3 P( L5 I {template <>4 g# `: z2 m% x; e
struct SelectSpecialization<void>
' X8 [3 f) Y/ D3 C* s0 s% l{# V; _# H0 ?5 T5 a
template <class Normal, class Void> x$ H+ ?, D+ q, z7 v5 K: ?
struct Type { typedef Void type; };
( z( {+ N- a& P};
; t/ ]( b/ R7 I4 H2 }/ c. ~' G; h% F; O' `8 `" b0 |+ ?) H
template <typename T>+ X1 y4 ^0 l2 r
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
( ^" n/ M& t% X8 Z* H{. {, Z0 ~$ b+ \0 }
public:) ^8 H4 a' {5 A; P, q% ]% v( t
QFuture<T> start()
- j w8 x+ G( t, o4 q/ q {$ q' Q9 y$ o. G; q* E/ D$ G& B6 \1 r
this->setRunnable(this);
' x' i2 Z' y% r8 D; V this->reportStarted();
p: k1 ?7 p2 C9 n; H4 u$ b8 P" j! f) p QFuture<T> future = this->future();, o- K0 C; X0 r9 K- G, f
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);. U3 o$ b3 E1 t0 w
return future;4 k% l5 E* n0 t* I
}
+ K4 _' k. e( ` i6 A$ r8 O
G+ l. }* \& D- |3 O5 J! T void run() {}
! s+ M" U4 }, ~1 ?5 C virtual void runFunctor() = 0;6 Q2 U- s' t# E+ A$ O8 e: j4 ^
};
7 Y! H" W" a6 D& x. H, p C2 Z# ]- w4 r" v/ J# U" G* L
template <typename T>
! e) }" g5 K# x0 L# ?class RunFunctionTask : public RunFunctionTaskBase<T>
* Y% j2 h# [5 A% b{9 {' z; }; d3 E7 w* g! F
public:
" N9 C" S! F: }# m/ N void run()
1 ~3 R* P9 R" `# r' f8 N {3 u3 Q% E* ]" f$ F+ [& d' R
if (this->isCanceled()) {4 `, o2 f. T Y* O1 t
this->reportFinished();( E9 R0 T. v8 p8 @" ^: M
return;) l( ~* U) T; O4 q' L
}
. j* O) P9 f4 s; C( j. m: y# v this->runFunctor();
; b7 z" ]$ }2 ]* ?5 l this->reportResult(result);3 C" @4 w: Y4 Z
this->reportFinished();
5 E7 @5 e" h6 d- n" R }
B6 g8 B6 h5 k& w& Z6 g; |5 S. F% J T result;# Y: a, [9 d: u; }4 ~1 H8 P$ p4 ^
};# T, Y' q1 \* G0 a5 f1 t& z: ?
+ j# c" K. Q8 P' [
template <>
$ L$ {0 b: B0 c; }' Pclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
/ F1 u! v& |+ \, O{
1 y! v7 n; V! y) R+ c0 |public:0 M2 R" C% h9 {, I+ h4 D7 O1 Z
void run()5 [- |+ c3 }. R
{5 E3 V+ J1 w- h" g2 R8 l2 N8 n
if (this->isCanceled()) {$ ?7 }5 P6 V* y/ F( r
this->reportFinished();; V0 C# k- J8 b# A2 q/ L }
return;
- _+ O; M) j( M! n/ a! K" O }
% h2 s+ b6 p# H3 H+ i this->runFunctor();
* v- A, W6 ~* X8 C N2 \, l this->reportFinished();
N0 Y: S: h1 |) I4 M# A$ d }
3 j, }" U4 S* n3 |9 e};4 d8 n; C: ^7 s) e% S
6 |4 F1 a9 P$ [9 x/ u' \+ D; l} //namespace QtConcurrent
7 `" P1 j P7 A! t l$ H! b8 w) j8 G) a8 |9 X# o
#endif //qdoc
+ i# T, X3 \3 R, M! D7 q0 Q/ A" L t. X( @3 v( d) }
QT_END_NAMESPACE
5 b9 B0 H6 K( k* ^QT_END_HEADER; j9 d- a8 s4 W' v2 ]& R# z
6 J# l" X4 w' l$ V% S+ ]#endif // QT_NO_CONCURRENT
. F1 H- }( [! s+ a/ s+ c: d6 b" v3 O1 N& p. g, e) k
#endif' L1 q% }, ^5 M, p2 B
9 g' V( \# E* l! S k |
|