|
我对syslink进行交叉编译到arm,但是出现如下错误:( G4 B: w2 i* A/ D5 c; y
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'6 b/ {$ U- M" U" V% z+ i5 }* s- a1 d
7 ]) ?$ N# M6 R: Y @/ j P这个头文件内容如下:
5 V: P2 H) e& z5 u4 E0 p( ?#ifndef QTCONCURRENT_RUNBASE_H
2 E! f, T: @" R$ }0 M#define QTCONCURRENT_RUNBASE_H3 J6 }% N9 [+ s0 B
; {* B- D" h; r8 n
#include <QtCore/qglobal.h>
+ }- u' b( @& R# [' L& E7 J' \3 F; p1 b3 Y+ a9 z
#ifndef QT_NO_CONCURRENT P8 f: r: @$ g: w' f
& O Q, o7 D; D
#include <QtCore/qfuture.h>
9 h8 F: m/ J$ m# W6 Z+ e- n#include <QtCore/qrunnable.h>
! T2 t- {+ B) b9 D#include <QtCore/qthreadpool.h>, v! N0 J2 u" k# f# c; e7 x/ U
, z9 A. R W% L3 x/ u
QT_BEGIN_HEADER) O3 L% V) |7 V4 Z# E) W
QT_BEGIN_NAMESPACE
1 `# M3 a/ a: b5 m5 s( v9 n# c% m' g* ~' l8 ?4 H5 q6 `0 ]
QT_MODULE(Core)
# B9 D* f c7 Q7 z) \' k2 t6 f f- z4 W9 w, X+ W+ M5 `
#ifndef qdoc/ F; ?1 u4 {& A, O1 B1 s5 ], v- Q
4 D$ S2 ~2 `5 k/ _# @( Q% ?
namespace QtConcurrent {8 \# ? F0 G$ Y& Q* S; C
+ z, Y% P m- a4 N, r7 u# @template <typename T>
7 J8 p* L- n. Sstruct SelectSpecialization
! T/ b- w) }4 T: M/ X{
3 }9 D9 K) v4 @ template <class Normal, class Void>9 a- f% @7 Y( R) a- k2 h
struct Type { typedef Normal type; };5 [6 |) H. a! `; t
};
, c% g5 {. Q. Y$ X9 p: _ @
* x0 Z3 f: A! f& Wtemplate <>9 O; ~& Y' n- e8 A _3 @: w0 ?. \
struct SelectSpecialization<void>
6 r# ~* i9 J& [3 K{2 `2 z# l4 _8 E) B1 Z3 X4 u
template <class Normal, class Void>
Y. @' l1 ?- Q! q struct Type { typedef Void type; };6 [$ } e" z) T2 M, \' j1 G
};# c! X) O0 [) u* N6 f6 ]
! R& }6 o( h; |1 _
template <typename T>
4 d& b- E3 z3 ^ q, ~# ^: ~class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
( e# p7 g a: {1 C$ F7 ^# ]8 z0 g{
6 u4 B5 J7 Z9 ]- x# t2 hpublic:
* t i) v4 x4 N- E% r6 h: V QFuture<T> start()( x3 b: ]$ G& a. Z$ H
{) j( s1 g3 C: b, h) S4 `2 p" g3 x
this->setRunnable(this);
7 s! P* \2 X6 T( U+ g; @4 A! w this->reportStarted();& J% ?4 @# ]$ u# C* u, C) B; L4 ?
QFuture<T> future = this->future();8 O& U+ b8 A: g9 w1 N0 m. r
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);2 D5 Q. E- \7 T( T* I, d
return future;
; w! e5 S+ ~ S9 W7 Y }! b( c9 D& ?3 L$ [; ^
) I: O9 k7 E! T5 y$ {) E void run() {}' P% D( B' n9 y- {: d2 C5 R
virtual void runFunctor() = 0;% E7 L" o8 j% G0 q0 @
};
2 i% c; S. o8 i5 C V3 ^
# n7 Q% T+ j# e3 Qtemplate <typename T>4 a0 R! {# I) j t7 B) [* C
class RunFunctionTask : public RunFunctionTaskBase<T>. Q/ r3 H: N% Q* l, K
{9 v% U4 w) [) r. n+ P, P+ U- |
public:" Z ?; i" d% E6 k( Z: a
void run()
" ]" V; |. h/ V' Q* y {: E7 s+ ?- f; V' W: }
if (this->isCanceled()) {: K/ m) x1 q0 h9 ?9 u- X
this->reportFinished();
- ]: }8 u( y8 F/ q7 A7 Q* w# e$ O return;
$ @) v+ S" {! w: ^0 ?0 A6 V }
# g! J) q' ]; U! C this->runFunctor();
; j1 v& q3 K) C this->reportResult(result);
, E& b! W% O& ~- p4 w this->reportFinished(); {% X% B/ E! d7 M) |4 k# a
}
1 j) P5 C! x* w5 p. r9 Y3 `3 h. O T result;3 s' g, j4 [! a* {: t5 r c$ q
};
" X' |3 Y/ i* D( o& V5 D' H, |+ P
template <>
9 J+ q4 ` L; b; A- Y! w+ fclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
" y! O) {: t3 d{
9 Z5 ]1 Q" O9 B0 C6 | _3 G. epublic:# O- @# z, f$ R- T1 `
void run()) Z4 h# g- n* @ H V/ G! U- O' A
{
" R" r4 G/ h% v" I if (this->isCanceled()) {
8 f4 v& Q% V( l$ h' z this->reportFinished();5 s1 O% o5 ~+ ]! s' X
return; v5 w$ H+ j9 J; p9 Y M Q2 m/ B
}
& c [% D9 h$ O& J+ } this->runFunctor();
$ c6 @/ N& E$ f6 A$ E1 @; h" C this->reportFinished();
5 u( @, j% d0 n0 ~, q }! C# |. L& V4 Z& E( L* |
};" W* H& E& C0 H/ `5 L9 `: E
. x) X! I0 N; @ L& K} //namespace QtConcurrent& l; Q2 Y$ M; u" f
# J& w& D6 W! ?/ B* k: Y
#endif //qdoc$ N- u5 A8 g# k, b# V. t
- _8 x+ l$ g$ p9 z8 T O* BQT_END_NAMESPACE; R# a( R9 }9 a S+ q+ ^
QT_END_HEADER$ B# @0 O% v/ p
$ i$ `- w: F; b1 i4 X0 r
#endif // QT_NO_CONCURRENT, y6 V. \: ~* _+ d
6 J) a; r2 U+ S+ G
#endif
8 f& w7 R7 e0 X1 o0 e2 r }6 [2 N* x! v
|
|