|
|
我对syslink进行交叉编译到arm,但是出现如下错误:+ V( _0 ~! X' _0 x& d: ?, v
/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 {2 m' l% ?3 a# c% f0 l% b+ D' n7 v: }+ l
这个头文件内容如下:
( y# l+ f0 z# C d#ifndef QTCONCURRENT_RUNBASE_H; K% `, P/ @$ p7 F- A
#define QTCONCURRENT_RUNBASE_H. h; X' g$ _, |0 k7 q, e
" }& y: M. R) U5 z/ _& d. l
#include <QtCore/qglobal.h>
+ [1 f9 t( }4 g' o0 A G% t9 [
W7 c" b. H0 }#ifndef QT_NO_CONCURRENT% j; I2 I$ V' X0 d) G
" f' M. x8 A* Z0 x. j#include <QtCore/qfuture.h>1 L6 Q/ T. S& S. ~, o: ]1 E1 v
#include <QtCore/qrunnable.h>
& J: j, v- u9 Z; E$ v#include <QtCore/qthreadpool.h>* D( d6 _7 V: \( |7 Y. @, h; M
3 z6 s0 Q6 c3 m# O0 R
QT_BEGIN_HEADER
" v4 B4 ~& Y6 C( C `8 H4 l- S' f# h" iQT_BEGIN_NAMESPACE
3 w! o% m1 |8 z0 k; Z, D, |- E; a. {+ r$ ^
QT_MODULE(Core)3 u( P6 i$ d0 d3 \$ u+ w! K
; m" X+ c/ [9 o6 S#ifndef qdoc
2 v2 z9 h z7 {3 S/ Z2 j
, s& }2 w) R9 {9 Y& l- t$ k4 O3 n$ d9 Qnamespace QtConcurrent {
5 h. z6 ?8 v& [' @# n
8 S' O% v, A' d0 Z9 x2 A& etemplate <typename T>
8 C! L8 r0 l7 |( `& l) astruct SelectSpecialization
- [ Z8 I+ g' m{! p; V2 U$ \# i6 }9 z+ y @# k
template <class Normal, class Void>
' F) B% r2 q \9 d6 _ struct Type { typedef Normal type; };+ A/ y) O' b8 p
};; m; n: B0 P4 @4 J P* T& I
?% z! k: B6 E! o6 ]$ d Z% c
template <>
$ S$ I2 }/ D* O/ \4 A$ `struct SelectSpecialization<void>8 N5 v4 p% b5 O: [* p
{# L, G) L, J, U% J+ R
template <class Normal, class Void>0 @ |& ?& D: q# J
struct Type { typedef Void type; };
# [3 ?( i2 ^# R' c# C};
5 X- y) w9 v5 C! t, M9 U/ s! s# o
template <typename T>: [" ?, Y5 b N7 n
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable. d" Y$ P+ I( G1 B2 D7 T
{4 N" g# {& M: t2 J5 \ E5 x: l
public:' ~6 _- R2 D; u
QFuture<T> start()2 H3 S* s5 H: w% [ O
{ b; X1 y2 s( @ k
this->setRunnable(this);
9 W/ g6 k+ n3 A) m2 } this->reportStarted();; L+ ~: L" n4 a t/ y$ y
QFuture<T> future = this->future();
/ ?1 y. N/ ~6 s QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);: y# L; p$ I: \! I: s: w
return future;
0 _4 q$ I* H/ S& I* g: m# B* D }& k5 E7 w4 |* {4 h1 {+ o) H
0 c, Z) P6 s; ]! W void run() {}8 y5 v( V3 J5 J' g1 ?$ F
virtual void runFunctor() = 0;
- T/ ^9 o* R3 a% S};% U6 n; E8 \5 q J Y& t: c
" K* I% W8 e- S, etemplate <typename T>
8 @ a+ d3 a, P/ rclass RunFunctionTask : public RunFunctionTaskBase<T>
4 S0 A. d! J' B# S4 Y. N9 _{
- R. K# E3 I9 T: s1 |3 A. lpublic:
" G. D# q- ^% H' Y void run()5 o7 E$ B% K+ `7 F
{
% ?" U( y0 _* K$ c if (this->isCanceled()) {
4 h' a* J5 D- c: B3 G0 e this->reportFinished();
" Q6 O0 D% @) f0 D% I return;
% ^) T: \. U# T: f* C }7 E I( c; s, h% P
this->runFunctor();+ i% U6 b4 H9 C8 T; x: P3 c- U. |
this->reportResult(result);
* o6 L' F; n# i6 q7 [6 `9 D8 K- o this->reportFinished();. S0 Q* U6 \ x" ~
}1 z0 N, \- ?+ S
T result;1 B! Y6 n+ \: q' ?( E
};
. |6 D% ]' b! F. H* s
6 o4 c- b: B d5 Ytemplate <>8 A6 w$ W+ I( j# X. z5 J/ `
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
6 J- F( C# t# {+ @ g{( x2 V H8 I, N. \& O
public:5 T; X3 u0 n: f
void run()6 ?0 L3 _ Z' f' E7 P/ j5 Y3 R
{
7 \) _& ?* J6 P( @: u' U if (this->isCanceled()) {" ~" R9 t5 F- |7 `) h7 {- F# [% ~
this->reportFinished();
/ H! p! ]6 B9 P5 s, q return;
! y+ p1 @. l) W" [7 b- s }
7 Q. m3 `* ^" j this->runFunctor();
8 w' {8 l* K, J0 Y' `, _$ q- L this->reportFinished();
$ {- L0 A, q6 y* A$ J! W }& k1 G/ m6 Z8 z
};# y% x9 W, G: u7 V5 P& N" O
" n7 d! C' k) C) |. ^1 r( y0 G} //namespace QtConcurrent
5 {* V; {: m5 C% g6 Z; F% A# f' {! G) _* V) W- R
#endif //qdoc" L6 U7 [& s1 N& k8 i
K) |& |6 G! W% f AQT_END_NAMESPACE
J' y9 I* i) K+ h$ |QT_END_HEADER7 \9 d1 S3 L8 }# a
6 ~4 Z% p" Q) {: j0 k8 N#endif // QT_NO_CONCURRENT6 z0 P) Q) B2 B+ @7 L$ n, v$ o3 n
$ L' I: z0 d8 `8 e U
#endif6 P: A3 r! I: s7 n `1 r
* p2 i3 b4 ]. y6 h |
|