|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
% k. A& z+ d+ r# m" W/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
' _7 l2 X+ c1 C3 }
0 A. |3 N% e1 B; H( _这个头文件内容如下:
* S5 v m6 M/ r- ~0 f+ T0 M" ^: q7 q#ifndef QTCONCURRENT_RUNBASE_H
$ |# w: c! ?& B) R2 ?3 h' ~0 L& N#define QTCONCURRENT_RUNBASE_H
3 P8 A: d. R' A+ |0 n! f8 n
8 Z/ P" K/ x$ D; V2 }8 l& W#include <QtCore/qglobal.h>; S% i& u4 g0 K, ^7 k# W
3 n, F6 R2 \4 t% f: _; Q! g# Y( E8 Y
#ifndef QT_NO_CONCURRENT% g3 U7 [* g" H! g1 S( R ?# H
, G* F* D# Z5 I3 U" K) M- r
#include <QtCore/qfuture.h>
* ^6 c: A( j7 V% C/ C' H, Z6 M#include <QtCore/qrunnable.h>
" j& Z$ L3 T% |" B9 f2 ~#include <QtCore/qthreadpool.h>6 _. K% A1 l2 N/ S
A; d) H" |6 I! I% QQT_BEGIN_HEADER
2 i! L3 C0 W! ]" i" V) @QT_BEGIN_NAMESPACE
7 Y2 s' X/ D8 m2 a
6 B2 v' }8 t% F9 \" UQT_MODULE(Core)
, a$ k. C$ X' ]* O9 x5 p
* z, P* C9 L; Y& d) K2 X#ifndef qdoc
1 i' a/ Y' J: {
4 B: t, Z; k+ |3 hnamespace QtConcurrent {' F' l3 |, v! c/ @
% ?) U& u/ I0 E6 Y0 r
template <typename T>* d0 v& Y4 I' u& [! f% ^: m' @
struct SelectSpecialization
! ^- Z. T3 ?+ R0 ?% h{
& L* U8 Z) M1 s0 j; [0 C5 b template <class Normal, class Void>% G# }2 q3 O" Y% w7 D: S7 h) P
struct Type { typedef Normal type; };& n: P v& d! S; q7 _' F
};8 @8 J0 `! h; X( O4 f
/ t* ? ]2 l% |4 Qtemplate <>
/ v) _6 @9 o: Pstruct SelectSpecialization<void>
7 U1 ?; |" l R) _{' R6 Q# N0 [! X- J4 q5 V H8 E- g, b
template <class Normal, class Void>: p! c- Q0 r' ]8 z' @* U% N& e
struct Type { typedef Void type; };
" _6 L$ U! R5 y' O4 V1 O% m# x- \};$ p0 e4 I# d0 \: {& H* x. R
+ }& R+ w. i+ A* ?template <typename T>
5 n' U1 h% k2 Z7 D' U3 y1 Fclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable1 x+ ~* z3 s( D% ~4 K4 r# i
{
/ R' c0 ~4 Z& j0 O( [7 npublic:5 o4 a8 P2 n: ?) v8 L
QFuture<T> start()- A9 h& u8 n* q! ?; i- u, {0 U2 R
{
& ^" T% H' l7 r this->setRunnable(this);" w) s0 `: E P, b
this->reportStarted();
- k# s: I, V3 a6 l9 K, e QFuture<T> future = this->future();
9 K0 l6 @. E! X$ t) J QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
3 ?# T4 I. E" H% m return future;
4 U2 T- h6 W& u+ p }: _- ^) |+ s+ G4 K6 |5 m" L4 W; y1 b: F7 W
3 c: y4 g& W# @3 w, k1 C0 K/ G; O
void run() {}
$ O% @4 Y2 U. A, r v virtual void runFunctor() = 0;- J5 k; F" k8 ^8 N$ f N
};
6 y3 S% p& y) V. |. L: n- a: A# b% i( c" e. ]
template <typename T>) c/ q( u8 i: L! j j. L
class RunFunctionTask : public RunFunctionTaskBase<T>& P( |$ [7 s0 n5 N0 u% C
{% ~( P) f9 i4 W, v
public:
2 I) \ l h: C i( B* C" u' N void run()9 o$ w5 f% j" Y `2 s
{) x; h4 q) P( A! ?/ }4 r
if (this->isCanceled()) {4 F6 t& Z% D% G* z \5 E: ~- F
this->reportFinished();; o- _0 {4 }/ q: q5 n, i) q
return;' L. @* e& v) e6 ]- L4 S
}
; P. H3 y3 n# k0 R" `; P8 N this->runFunctor();
; z" m$ s! c+ C8 `6 d: N3 U this->reportResult(result);8 X" u' |0 m- ]# i' t! V5 S
this->reportFinished();
1 r* B: o+ e+ Y* H2 q \7 K, R }+ Q; d- R" o3 m9 Z" ]
T result;
6 b% G" T# g0 B$ D+ d' l};7 e' Z! x; p* u( G! Q; Q3 v9 O
. O/ L2 q3 y5 N' a: K+ Z1 }# |: wtemplate <>
; S. N2 @( M3 y5 _' s& nclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
8 A2 }$ I: L2 G: Z+ ~7 c# [7 S& e{' X' Z" d% ]. c3 Q$ j$ H, o$ _( }
public:3 ?- L+ ?4 ^% \4 f
void run()6 }1 R! I( B3 Y* p9 M6 Q
{' W6 o: {- P, }1 Y5 {4 ^
if (this->isCanceled()) {# W* O. Y* V' a8 E( ?2 w
this->reportFinished();
3 {1 m/ ^. s |! F5 @% e5 s0 O return;$ o' V- H' X7 Q
}
$ _+ _* k: [% o, D' c this->runFunctor();' b9 I I# ]4 }8 {! A
this->reportFinished();3 I" {5 G8 T3 U
}
( X# |4 b" s# X7 G! b3 @/ ]};
2 `" B4 j( m$ ], l- P5 ~0 A8 P4 Y f
|, [& e4 R8 T1 s4 s2 @/ y+ W} //namespace QtConcurrent
2 u! q: T r0 m" q7 E/ }* T. J1 h" x( b7 ? f4 \0 ^
#endif //qdoc
/ r. p! o% w, a6 Z* E, g$ u' O3 M) S# v+ w b& P, q3 M: |) E( J: Y
QT_END_NAMESPACE- u& \2 Q3 w: C, L/ G x- i
QT_END_HEADER
9 p# Q. r4 k4 Z# f2 \9 v5 I! e
#endif // QT_NO_CONCURRENT4 A, o3 ~3 `& w9 x1 ^" T* K& M
9 h$ A Q0 ]( {# ?: C [#endif; t: B- B* K0 K
* L, Y) P4 A0 a' P. j4 a& h
|
|