|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
4 U3 y x1 K7 L, ~) U! z/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
4 g/ Q' k1 u# Y, Y% b
e. b6 u3 D3 q# P! i这个头文件内容如下:
! w5 [* S& W* g1 u. F, X#ifndef QTCONCURRENT_RUNBASE_H
3 g4 o8 Z8 a6 v! K7 C#define QTCONCURRENT_RUNBASE_H; ?3 k- c. I: K
. b5 b+ L& G; r/ U9 Y#include <QtCore/qglobal.h>
$ J/ I% m- C8 v9 E: L% @; u `3 F j0 c( o. V
#ifndef QT_NO_CONCURRENT
# R y7 H8 f$ W8 C& M
, @1 z2 O1 l" L- F4 V! h) V9 j#include <QtCore/qfuture.h>
+ V) [+ s+ L3 F3 V#include <QtCore/qrunnable.h>. ]$ c! p% X r2 ^. ~- U2 r
#include <QtCore/qthreadpool.h>
* M' E; u- m% U! Z& y' C# b* S" U; O$ |+ @3 G4 L
QT_BEGIN_HEADER
# c1 S) A$ U, m6 |2 h7 AQT_BEGIN_NAMESPACE
, {, m( d$ }% [8 ^
5 n' x# N+ g) L. LQT_MODULE(Core)
: l( d* x5 k; z% _4 s
# |$ d5 f% @* G7 q3 _7 B, R#ifndef qdoc
9 d, N' [, p. {% i) ~
; F/ O" s" N4 G8 V* mnamespace QtConcurrent {4 Y; Y& D$ F: T- z$ e
+ @* J, v( g) c& h, Ktemplate <typename T>- h& h6 Y, i0 w: a1 a. v% k+ j& g
struct SelectSpecialization+ _: h, D" \$ c1 k
{* C* i* v O! p. l* k# ^
template <class Normal, class Void>8 c. l8 G5 S( K3 E
struct Type { typedef Normal type; };
2 Z4 d% G4 \4 h) G( V};# ?+ K& a- s& {1 k2 @2 F( G2 f
J$ \6 l- M# C3 R8 ftemplate <>' |1 S! f Q. j$ U' `
struct SelectSpecialization<void>3 C- u; N5 R L N
{
t7 y; ?+ Q! X4 R template <class Normal, class Void>4 d, M! k# p8 I, i6 Y
struct Type { typedef Void type; };) ?3 |+ z4 y/ `/ v# `0 |9 B
};/ }6 a% l1 M& T
2 ~/ r& S4 D- u% C7 A& H* m4 }template <typename T>, Q8 _: F5 n9 W0 F1 Y8 K1 }
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable. R# r+ Y7 I+ w: }. @ N8 r- i" N
{+ C( [, G4 F* q. E- K! C; Q
public:
" N! V! l6 W# _ QFuture<T> start()
7 Q# W4 j, |& c* e; h1 [$ o {
; p9 h& F" }4 @, Q6 ?3 l) O this->setRunnable(this);$ l! N! `" j/ _6 \9 o4 |" u8 t# s
this->reportStarted();
8 W4 q! a& O, e M/ Y. ] QFuture<T> future = this->future();$ a9 L% D2 e1 h& T7 U4 @% r c$ R
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);; ~ n# V$ @0 {% a% ~
return future;3 ?/ U( X5 u/ i' t5 d& w4 N
}
% j2 m3 B5 Y" x2 w+ o2 x6 ^9 K1 T0 `$ k+ x- M; R: ^
void run() {}) o* w9 Z2 K$ T" [9 |3 k* z
virtual void runFunctor() = 0;1 }2 O3 z9 o# x) `# H, A
};1 a- Z7 l* Q& Q2 k8 N- L" z. d* e6 t
2 \' }8 O1 b8 w# O6 Q/ S6 o# utemplate <typename T>
~/ ]7 P. o$ N" m- I5 p' U) Q$ Tclass RunFunctionTask : public RunFunctionTaskBase<T>
H8 L! {) d1 I# E1 J- I5 ~4 v{
& P5 P$ @, I8 D. }6 Q: N( Opublic:
( o( {1 U/ L% Q" s! j void run()
$ F _) j: O% |3 w, E; [% H {4 V) b0 s% \" S0 f, X9 g( b
if (this->isCanceled()) {
0 T) L! [0 \* @! C' J8 B- N! o this->reportFinished();
2 c; |4 F6 G) q1 _* D return;
v) y& G# Y! m: ]5 d }
! G% D* A* |0 n4 B" G; ?9 f. T this->runFunctor();
& h! D& V0 j* m: n9 y this->reportResult(result);
1 a/ w" ?# Q0 {4 n' I, g$ z# C this->reportFinished();
) ]% b; T. D$ M }, |( D' e$ j6 s: \
T result;
- d ]' M" i& ~* c$ S};
8 r8 l* m2 l" I6 m0 Q- d5 n
& _9 A& a: G6 T! [template <>
& T7 a1 e% \# F$ Xclass RunFunctionTask<void> : public RunFunctionTaskBase<void>& ^+ [ z; y: |5 I. O$ X! P
{. U- M" r' [: f; r2 [ p7 r
public:: N+ p4 m- X2 s! E; }6 V( m
void run()
. r, s! o m c/ \ p9 Y {: k' s* d6 t E M2 S
if (this->isCanceled()) {- q* \4 {- @6 {4 K2 b( I* d4 m3 K
this->reportFinished();
& d2 V: B/ D. }$ g/ O' n0 e return;
5 C# ^- a) r- J# y }! \0 Z2 ]( W+ ]2 T! ^2 V" }
this->runFunctor();
- Y5 \6 q8 T2 N/ B7 n5 c6 @: D this->reportFinished();
! |2 ]. F+ \9 M Y, l+ G }
0 c8 b# e2 _# ]7 V; q, d$ d};# Z5 ?8 L2 n: m: A3 s$ w3 r
3 {7 x' @% M/ Y6 R$ }
} //namespace QtConcurrent
! D" F" j! {! m J) |4 |, k
9 `' Y' H& h- z& X6 F#endif //qdoc5 @" _' o0 m- \! X& f' ~
) P8 |, c6 v; \1 @QT_END_NAMESPACE
9 R. E! Q& D( {2 ]! i8 k4 |) mQT_END_HEADER
/ q7 m8 u. \! q% s7 o
X7 F1 ]# L/ i! X) P* H, N3 ` M#endif // QT_NO_CONCURRENT
: j. V4 ]4 w6 G1 M F9 T; B5 a& U( L5 j7 ^4 P
#endif
- B5 ~- X6 O* }, F
6 M( i: T' {: e9 V4 [* P/ W- C |
|