|
|
我对syslink进行交叉编译到arm,但是出现如下错误:" D2 E2 E- a* a9 Z% b' `
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
$ u3 z2 D& r% }# a/ ~7 v! [. }" A# T" w
这个头文件内容如下:
/ e0 M$ _2 Z; l9 s#ifndef QTCONCURRENT_RUNBASE_H
( K: U2 ^8 _9 v/ | }1 D u4 [3 t9 g#define QTCONCURRENT_RUNBASE_H7 p) M- G1 v* K# _; p
( @& o: s* g; @5 M0 n$ H! H0 s4 I# p
#include <QtCore/qglobal.h>( k) R% ^; f) N4 ? ?2 H: ~+ l
% H0 r, O- j, }#ifndef QT_NO_CONCURRENT
4 v2 d2 e" m, j+ T3 i5 D2 Q9 q' L: x* W8 W) o7 X: ?( n
#include <QtCore/qfuture.h>8 c, p" n& T) U
#include <QtCore/qrunnable.h>* P" ] S8 z d* D) \* z$ R; v9 D
#include <QtCore/qthreadpool.h>& v; f2 _: Y% c" h/ S; E. y
5 t, c& s- Y: |& c+ ^QT_BEGIN_HEADER8 L+ V: u$ G1 L2 h
QT_BEGIN_NAMESPACE
8 A0 O& l! I" w! ]1 S' s' [* T- K( L/ y* B7 Y. R1 W. J
QT_MODULE(Core)
$ r8 _8 C$ q. B* f% u4 x
: L2 m1 t Y5 i, \7 j3 G) y#ifndef qdoc
" [, s- l" M) }- y- \0 @+ P: ^
' W; @! i" s* k0 U; m+ b6 }9 B Inamespace QtConcurrent {1 n, I% Q, r* \3 e7 ^# X+ K
3 F- c* b# I6 | c
template <typename T>+ t+ w- m8 Y3 ^9 P' i& r `% \
struct SelectSpecialization
$ C' A7 i; ]" t! Z F" }' B{+ b; F$ b! d6 N( C( m) P* t
template <class Normal, class Void>
5 B h/ p) f e& f( }( e: T struct Type { typedef Normal type; };9 _ z) }+ H, T, J/ V7 B k
};
3 f5 z3 p9 H( E" i1 \
1 }* z( E) Y% Z: m. }6 ^template <>
" F ?/ h5 G! a! sstruct SelectSpecialization<void>
% v# w* J7 \9 |: C9 K1 K% J: z6 {5 ?' M{
; F9 ` Z5 ~, P; `1 S# h: Q template <class Normal, class Void>
2 x C% S4 U% L% F! S& R struct Type { typedef Void type; };/ Z, H2 x- H2 Z+ c* V" s
};2 e# a3 ?6 Z( g+ Y6 V* p b6 H
' X1 z+ D# H) t% R
template <typename T>% L0 N8 {6 E2 v. _7 ?( K- [
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
3 W3 Q* z P, e" i9 Y{
8 p$ a# Z- e' f+ M, G+ N3 G1 qpublic:
8 Z6 @5 b/ k7 B, ^: l QFuture<T> start()1 f* F! v5 m$ z- `; e
{ B5 _2 _- T ]+ z d8 ?0 m) E& R( O
this->setRunnable(this);
8 y7 A: f m' N# P7 v% {% L this->reportStarted();
# x. d6 f# L0 w1 d! w QFuture<T> future = this->future();
9 v F$ |2 }# w u+ U7 k3 l QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
* t3 Q+ @/ A/ P% ~* \, H0 T0 z return future;
. }1 j2 C2 t5 @2 m- m }
- s/ p/ n' z2 |) e! s
/ T! V) a1 E5 H+ Q% ~7 | void run() {}
6 n" \% d% w _7 Y6 f* ~7 X virtual void runFunctor() = 0;
7 r1 P x% l! O# L};
$ g, r9 p1 [7 w- L ~( _) I$ W- `# d8 o. j1 O
template <typename T>
. Q. t: X/ D' ~. f6 P$ g2 Hclass RunFunctionTask : public RunFunctionTaskBase<T>* d* X0 N- M( T: v7 Z/ t
{
) a6 U. h N! ~& H1 J- tpublic:1 ^; F: Z0 ^# @+ q+ }
void run()7 h" E, t+ h' Y. F% A
{
( J2 H I2 y$ h, N if (this->isCanceled()) {
4 T; O# ^2 R; y+ q6 y this->reportFinished();. i* o" \- n) y7 x
return;
' L1 q6 J' }* N% t- H: a8 M }* g# ^& f; L8 g3 D* s/ B: y
this->runFunctor();* e% y& n0 D1 }: L( ^+ ~% `' q$ F
this->reportResult(result);
4 F$ ^ I, _5 ~ this->reportFinished();
+ l) T0 k+ i* ]* [ }5 b7 S2 ~) \7 E+ @
T result;* ?8 i) j9 I- u# }3 `$ i# q2 {
};
- Y3 L4 S! A/ p4 i% n% r8 Q
: R' B/ I% |- e; b/ {9 ?/ Z5 a, ztemplate <>/ y3 q+ M! J- c% |
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
( C: B$ ?7 ]/ @% l0 }; s{
# B3 Y3 [9 @4 p) K/ o# ]public:
3 m% @# o+ V4 S" O/ I4 J/ U; ?" Q void run()
. H7 Q8 S1 {7 F) c$ r, K {4 y# v. U' o2 U9 q
if (this->isCanceled()) {
+ I& K. ~& R# ]2 R2 C, {: _2 e this->reportFinished();, D6 G. z' b- @3 E$ D ~
return;
6 c& T8 D7 h* L- w' |1 B" @ }4 B4 y1 k: M+ N) U, P8 c! A
this->runFunctor();
J! R$ a. ?8 V7 O- d* V$ i5 D this->reportFinished();
# L6 t& G$ W A% N. j }
6 `# ]7 G9 F$ L% F# S4 Y};
, A1 |: n8 f2 F/ P- Y; k! M. b, o0 |0 N" ]; T
} //namespace QtConcurrent
" J9 L3 b5 x) p7 d. }3 Y
" b' e$ Q4 u/ o* k#endif //qdoc
; e5 ?/ Z+ O9 B; \+ k3 l3 n
W: M1 b5 z* T$ pQT_END_NAMESPACE
1 B, o* J9 ?4 ?( j- |# \QT_END_HEADER
3 ~+ Z; L/ o) ?3 @" i& R3 U
% r9 ]" s# ]' r& Y) ^#endif // QT_NO_CONCURRENT
1 X7 t! J" M5 |, v( s# x% h0 [. O/ p; K* E+ m; ~
#endif
' k- F: o0 K, `! q/ m6 Z
, F v- d0 F- X& k2 k, u |
|