|
|
我对syslink进行交叉编译到arm,但是出现如下错误:$ U1 n! d% ?* j+ j
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
! w# Z$ a3 W2 Z. |
4 d% E7 V9 @* i% N1 [; d这个头文件内容如下:
# F( d% f! _( f% ?#ifndef QTCONCURRENT_RUNBASE_H
; t- t9 N3 H: K. S- \. h#define QTCONCURRENT_RUNBASE_H
' ~3 t( d9 u& O( a h; r3 ]" U3 q% m# f# Q5 o3 m
#include <QtCore/qglobal.h>
' @* U% ^4 |' \8 W3 i* l- k/ o L! M1 c& I: e( U7 t7 S5 f: x
#ifndef QT_NO_CONCURRENT% ^( C' @, }3 o1 P% y
6 O% c, v0 S9 A* U, X4 K* z#include <QtCore/qfuture.h>
' ^5 [+ J- y+ D4 `3 o2 _' A; l* L#include <QtCore/qrunnable.h>
( P3 E8 z: _. y+ y8 N- ]( {; J#include <QtCore/qthreadpool.h>
5 P! _# P1 @4 D4 _" \: l; I8 |# l
QT_BEGIN_HEADER( q5 S% V3 \; M/ I2 s
QT_BEGIN_NAMESPACE
8 ~7 s4 P- Y$ |6 ?+ f2 c. x; d: G0 g. C$ d/ q
QT_MODULE(Core)
# t y$ `$ n/ K( K2 W' [* |0 G' G+ _% S! n$ D3 x6 O6 V
#ifndef qdoc
6 Z8 B1 s1 H4 R( d+ \% X2 p1 P7 V2 ]
namespace QtConcurrent {
0 c a. y2 b- D2 M7 [) | z
; f# f2 @6 c5 Y- J; Gtemplate <typename T>6 A, V' y; V; a
struct SelectSpecialization) Z- ^5 B1 U+ U7 a ?- p3 v
{$ ?2 X6 a2 c% {
template <class Normal, class Void>5 {) {$ d: p" v2 C* b
struct Type { typedef Normal type; };
4 r9 g* E0 v+ H};. s8 M: Q1 c- P2 y( ^: G- U- Q2 V
. }/ Z/ I& r& S0 p4 T
template <>
$ b( ^) c1 M1 O4 N" u) B5 v4 Bstruct SelectSpecialization<void>
6 _# U1 ^+ D$ y& Y{
7 _4 W; Q( }0 B' W9 L+ j! j! A template <class Normal, class Void>
8 w( V- w: u5 s9 v# ]2 Z struct Type { typedef Void type; }; x/ C0 Q2 |9 j8 E0 n3 F$ W
};
8 e' V, T m0 H. y5 d- `
# ]" ~" p8 ^7 ]1 d* O [template <typename T>
) j2 T/ F( d2 G: } h1 k/ f* zclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable7 a) i) g/ R6 r, i0 X
{/ J% z8 V v' Q
public:
( j- Y: q \- I3 D; p8 u QFuture<T> start()# I/ a, R# ?; Q |# j3 U7 L
{, b6 P! D. a' b3 B5 l, Q2 A3 H
this->setRunnable(this);
" R3 b/ r Z2 K! Q4 ` this->reportStarted();
, W0 c5 o5 h2 T8 C* @! j" X* w8 E) d* V QFuture<T> future = this->future();" T* d' O+ t W& m1 W" e0 _0 z3 T
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);( C( v7 @+ I( u% W- Y# ]. t
return future;
4 u2 k |8 `' o+ f }% D" [7 h* w( T3 F7 }* t3 ^& \
, Q: E! ^1 Z; ?, z void run() {}
- Q) I1 e7 A! e# m$ z/ L: F& s virtual void runFunctor() = 0;7 E. c; u4 Q6 i4 o5 `) g
};0 q/ Y: X1 [3 A% L' w- W, [
/ P _+ m. ]) E# K8 Z1 z, m
template <typename T>
; k2 c$ T: ~1 ?, A D6 K0 q4 eclass RunFunctionTask : public RunFunctionTaskBase<T>4 V- [- D O$ e. N9 }' Y
{
: t" U+ {, f% Ipublic:
/ g8 A2 V% f+ `4 G8 M8 ^ void run()" \2 t& x! v3 B* ~1 E" p
{# e/ f+ @0 v0 h2 A5 E1 V
if (this->isCanceled()) { d$ v. e; ~# o7 X, K6 \/ b
this->reportFinished(); U1 @# E+ W& r! A
return;% Z% M. L& a* C
}0 ^0 ~1 {5 D4 L
this->runFunctor();' q# d9 d; c5 B( V* T1 l e9 m7 {
this->reportResult(result);
9 C8 y0 r! N" I; W this->reportFinished(); @; c. j5 c% {2 V& p; v$ K
}
- L( M- Y9 f% Z& B: D0 A T result;
: U4 p( M1 R& h4 U3 p9 d U& E};
0 t H: h7 H( y7 W; X8 {2 k8 u9 R) |& ~# m# d, U
template <>
2 ~0 X I$ c. a" }( n! Rclass RunFunctionTask<void> : public RunFunctionTaskBase<void>1 v$ ^) ?+ Z- I3 k
{# O8 K6 ~5 s8 |
public:9 `3 b- F. C1 O6 G
void run()
; a L# P' ^1 V- f6 E0 G, T8 i9 y. y {6 B; o5 f% N) w5 O' B% X
if (this->isCanceled()) {
2 w3 w1 _% `) O+ ?+ [$ Q5 @ this->reportFinished();; M5 w! x9 ^9 h) ^4 J P, n
return;* a0 y8 x3 {/ [ n7 p1 x
}
9 H2 S0 P5 I& @' R this->runFunctor();
; E9 r# ]' e" O$ Z4 `$ Q! x this->reportFinished();
( v0 ^. W9 y/ W! n }/ }) ~1 ?' }: Y% r4 @$ h4 @4 Y
};
2 o+ l& J3 C/ N; h5 d# c( W% v5 Y. a i; a5 Y
} //namespace QtConcurrent+ Y% p1 E* l: o: X
. n# Y# _) v4 } {#endif //qdoc
2 W8 j) Q! Y! t
5 X! |- A6 \# X. n5 v5 gQT_END_NAMESPACE
4 z. K! x: M/ n, D. JQT_END_HEADER% L' Q' B1 q: h" W- J
1 ], b5 q( e# _) S
#endif // QT_NO_CONCURRENT; l# W7 T+ K" s8 L3 L. c
' q2 L$ Q% k& s$ X. R/ o; A1 z#endif; f6 E# n; H1 n- B4 |8 r
: N$ ]* [( q" y+ I7 e9 x) z Y( T
|
|