|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
! h3 u7 C% G9 S8 P: m; V; b( q. K/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
5 b; O/ S. L' a% z
0 z9 q( g* V; Z# z) S. e* @这个头文件内容如下:
7 n; |) R8 I3 {" {#ifndef QTCONCURRENT_RUNBASE_H
; ^5 `; Y6 S( }& P#define QTCONCURRENT_RUNBASE_H/ g1 `! [# t3 Y0 S- S, K
7 A2 W" \3 u) [$ [$ `4 U#include <QtCore/qglobal.h>+ b4 y; x! q* P
! ]/ P, m4 _2 J3 x# C#ifndef QT_NO_CONCURRENT& {. D1 v! q$ n/ R3 z d
) C2 V0 ^7 P% h% L8 L% }#include <QtCore/qfuture.h>
' {0 W7 m) h7 J' i#include <QtCore/qrunnable.h>
7 J; f" d: V1 y4 c( v+ y. z; C#include <QtCore/qthreadpool.h>
4 N" H5 N0 M* q4 Z
, x* q1 ~& k" V6 q/ HQT_BEGIN_HEADER
" r. h Z6 b0 f1 z1 ]5 n9 J! WQT_BEGIN_NAMESPACE
. m/ O* J6 `6 _1 t. h& n7 F% j0 s" V2 Q# w# Q
QT_MODULE(Core)
% [( m' H X+ W' ^3 R6 Y
; T" \% I8 J5 c4 I8 [+ j#ifndef qdoc
8 C& O+ U: G' Y# Q" s. b$ ^" M: `
2 v" r! z' L8 inamespace QtConcurrent {
0 s- V. n; S( h# C$ M* j U8 M# J. @/ a) P
template <typename T>
; k/ t% u. E: `struct SelectSpecialization
: J' \- U) c1 b' w{9 p F' t& R& i9 m; v7 p2 n
template <class Normal, class Void> G3 U/ g5 ~/ S$ w, B) u9 L
struct Type { typedef Normal type; };/ t% C8 f0 v l' N( _
};! Q) o2 x/ ^# ^- u. {
6 \3 b& R& }8 Btemplate <>- U7 j' V) m. t9 Z
struct SelectSpecialization<void>0 j5 G- }2 X, m) @: U# Z1 j
{5 ]' r) [& z& N6 H& Q, q# N
template <class Normal, class Void>
( @' V9 ]% D* ?' L struct Type { typedef Void type; }; A3 F/ i% \. a s f1 m
};
7 Q$ Y: y0 c$ Y1 x( l/ w X
5 i, z0 X5 i: c. c4 ~template <typename T>% y/ I% |' r: N, I- e2 Q; ^4 s* o1 Y
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
5 k$ \* p0 n! @+ f( Y5 S0 m{
: @9 _$ \# l8 l3 T, Zpublic:
: v) m" E, d6 G; O8 p QFuture<T> start()
9 {0 R+ f# m& ~+ M" R. F, n& L4 H {
# N0 @8 o O% u I! I this->setRunnable(this);
2 Q/ l8 F. X" N- }! Y this->reportStarted();
- Z7 ]& a- F# j5 E6 J QFuture<T> future = this->future();' ]: v [9 m7 z
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
2 n- A# e& U* J: ~! V; O return future;' z: K7 u- c7 e5 {( t
}5 S. j) x$ w8 `' l+ R% H
- O& u+ u, g( H2 c8 V+ P- i9 a
void run() {} O( O6 K* g2 P) O3 v
virtual void runFunctor() = 0;
$ Z6 F- ^6 Z& m+ m7 P};
% w; H7 U6 m9 \, y" n: f' r z, {5 N/ K9 O: ?9 z% c
template <typename T>
4 k* R% u" _; n- h* C6 t; Q( Eclass RunFunctionTask : public RunFunctionTaskBase<T>7 Q) k/ P9 ^; i# z6 e& n0 g
{
& g% Z1 {1 T" o& ipublic:
/ i9 r$ ~$ E w2 `* j& i. q void run()2 F3 l3 s) W/ X; B* E
{: C# Z- r8 x% T; ~. i
if (this->isCanceled()) {
" U, M2 \5 z. \& p this->reportFinished();
& m6 O" ]& |2 M. Z: S return;$ Q1 e% z# Z' L3 V% f
}9 R, r1 C: m) [! q" K4 D
this->runFunctor();
2 d2 C% M0 l7 F3 f0 R/ ^ this->reportResult(result);7 E2 M" }6 k0 d2 O0 m% V, l9 U
this->reportFinished();6 n$ c( o" ^+ T$ U) k: J
}0 W% T8 x) e0 @
T result;
0 ^$ z0 J4 W8 h6 D) @};
! S. I+ j& o& C1 Y: m! N5 n1 S8 ~: q
template <>
: n% b$ y1 B6 j" c, Q( |5 E. }class RunFunctionTask<void> : public RunFunctionTaskBase<void>, S4 r/ y& r7 ?8 @! d3 V
{" u1 s1 V/ B4 \' s# j: l$ f. [
public:" F' e5 ~. f7 o' I2 p5 B, W+ O6 s
void run()
, @5 s8 k# W7 h( P( G$ u {
3 F8 W* [+ B0 y3 j2 c: Q9 p4 l if (this->isCanceled()) {
( @3 u0 B) O4 v5 q o7 b0 z/ o( Z this->reportFinished();
3 o; g# K( i) s& N j* b( p return;2 s) _8 l3 P* j3 |; l7 Z
}# Q- \) Y8 \3 q! I: t8 v/ r6 \7 a' _
this->runFunctor();
. t) U! l0 B5 F5 K this->reportFinished();
, l: M8 j0 \3 z" p0 j }
z1 X7 R5 \# c};/ L. \7 U, ]3 V: D& b: _
. S" M! s' _6 F) V( ?} //namespace QtConcurrent$ i1 Y: C: e# i! O* |+ m
1 y/ O% t" ~0 X b% J" ]7 S7 i C#endif //qdoc
i% P' k! i% C2 Q$ z5 [7 a/ ~. @) x4 {
QT_END_NAMESPACE, U& S* g! Y0 X
QT_END_HEADER
. @9 d% J$ d, Y- H; l, \9 u. F3 E: P1 T5 ]
#endif // QT_NO_CONCURRENT
! K$ [4 M. ?5 r) S/ m1 I. N
* s6 [( C. c* {9 m- g- n3 X8 ^6 |#endif
7 _! f' ?- z. G( Y m3 z" S* J2 \
) z, P7 ?, R: I1 o9 D& d+ U |
|