|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
% R* D( n( W6 `3 ?7 T: `' 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'7 m( a0 V4 }, q( v E% J
* v- W0 b/ G' K6 H7 ?5 A
这个头文件内容如下:1 h% l5 k B' D6 S: C* M
#ifndef QTCONCURRENT_RUNBASE_H" y/ V/ G$ Y7 }& J5 C+ g
#define QTCONCURRENT_RUNBASE_H
/ O6 m, \& h( _" U& e. |. M! v! `5 w* q' N& c6 O- e) T7 ?+ @; y0 a
#include <QtCore/qglobal.h>
0 M+ e6 f8 ] o4 }) C! z# g/ U8 k$ o6 u$ ^4 ]' ]: M, T
#ifndef QT_NO_CONCURRENT
1 S. w9 _5 _! e# b: E& q( T
! N5 q( z8 X8 c( R4 ?#include <QtCore/qfuture.h>: {0 M# U- y5 |! D5 i8 I. J
#include <QtCore/qrunnable.h>0 T7 Q; r9 W! U8 H
#include <QtCore/qthreadpool.h>" e1 V) T$ C' m/ b/ x. E: k
5 ^6 r/ }7 C- X& p+ [+ A' IQT_BEGIN_HEADER9 o6 J7 V+ u* g" O- n- O" y
QT_BEGIN_NAMESPACE5 `$ [4 `; u+ L7 D
1 _( W1 ]- h0 {QT_MODULE(Core)( V' E0 Z; C# l! e" ^4 v r0 o3 {
& r0 z; `* T2 ~#ifndef qdoc9 _; D: \$ d$ }# [" b
- U) T4 B6 |3 p, |: g7 D
namespace QtConcurrent {9 k4 a, B; ]% O& u, f a. Q
M: _9 Q4 V3 s! g" n7 O
template <typename T>
4 @/ U9 F! r8 r M% b& A- E! K5 \9 r4 Ustruct SelectSpecialization5 F3 }/ V; j. l2 I J
{
% M! ?3 X' W; N; @7 q0 F1 d, L template <class Normal, class Void>
3 Z9 @! u, B$ p' B2 _- \ struct Type { typedef Normal type; };; E- g, A/ v2 w0 F: E5 m) m
};' D8 W5 S) @" a
1 v. u+ m% E0 n3 ptemplate <>
0 `5 E$ |/ q) S) `* sstruct SelectSpecialization<void>5 x9 l" ?/ b) t9 r
{
4 q% h4 H$ i8 f1 I% H$ p* \" w template <class Normal, class Void>
3 t" ]2 P- V+ Z- O$ ^6 k7 Z struct Type { typedef Void type; };
* H* U7 e# e7 P, T0 @};
$ U0 B! x- O( Y) l& Y" e
4 v9 ]" q5 x _) f0 l4 z& L5 i# Mtemplate <typename T>. m7 h& q/ _! e! z) R- P
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable) H% {. U( D4 {$ ~( q* X; B9 L5 K
{4 E- Y7 ]/ [# [5 X- }8 V0 s- S" s+ c
public:
/ @- ^' T+ g- _; C0 T1 P3 K( a QFuture<T> start()
7 I# s {, _. R% o; V7 J! a {+ g. O$ _% U: c. s
this->setRunnable(this);. A, n/ m3 ?- F/ c6 C$ ]
this->reportStarted();
7 u! O: c( U' U: H1 ]$ m QFuture<T> future = this->future();
2 q) k5 t# [' U: h" t; v2 H QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);+ R- Z2 E$ R0 ?" ?' _/ q4 ]& m
return future;
) [6 w" c3 L+ V j }
9 N% |9 E' s% ^$ p g1 |. l& L# W4 k3 @2 J8 H. t5 ~! D
void run() {}
, F5 U; ?! c" U; p$ ^ K4 T0 T! e virtual void runFunctor() = 0;; n8 ]! ~# m8 J f9 r2 H' T& l
};
7 b9 K& {6 N5 `* X N% \9 e, O6 W- h+ l( Z4 t
template <typename T>& f1 X: X- d% N- X a- T m
class RunFunctionTask : public RunFunctionTaskBase<T>
8 p) C+ b9 i- w* s7 A$ p% t, j{2 P! ]# `: {- d) }( \2 b
public:% O0 N, R: i- u7 r9 A/ h
void run()3 t. T% M( E9 }$ b$ G9 S; b
{8 h5 G$ ^; J# o( {
if (this->isCanceled()) {
! Y* D: Y" E; a- F% m/ h this->reportFinished();
( z U; n" H( n" f) z return;
! s; j0 I. x b; m) d }! v- d6 ^" S+ L) Q. D( V
this->runFunctor();
) {: a4 p2 I3 _. d& u: s4 z$ T this->reportResult(result);
5 _* @$ `5 ]) S% ?8 t9 G this->reportFinished();% z6 i5 @' N8 c S, A+ j
}
4 V. ?" w4 c, f; A" ?, Y/ u+ z. c T result;
5 \$ J3 Z; x/ ^: f" p$ H% Y2 W7 h; F};
; M0 e0 \4 W) V% z$ a; a' | D
$ G, B0 R' i; {2 R: u. E0 Y3 W/ P2 rtemplate <>* l% R5 Z9 X$ M
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
$ t3 g/ d: P; c# Q3 G{8 u& F7 W; _9 O0 W6 T
public:
# E( k" J! e3 n- p void run()
1 u* L! v9 x! ^' `' G; d0 @ {( a8 Q6 P3 q" e* e$ s
if (this->isCanceled()) {
" ~1 N+ _6 q# Y this->reportFinished();2 m2 W. l }& y1 Z+ z4 a- X( t2 U
return;
/ O3 ?/ \1 i- B, L/ b" X! Y+ I }% g3 v4 B$ V& k+ `, q( x0 E
this->runFunctor();$ y' @! D4 S8 U- O& H
this->reportFinished();
+ b; F. f9 S, X2 N' u }; b4 ]- K7 D4 R q0 z7 h
};* N4 w% P8 V. s- N
7 s! \: d& g5 U
} //namespace QtConcurrent4 V1 \; v/ r* c% }# M; y* |: D
) b9 z3 }1 k7 P' }% o#endif //qdoc/ J7 q a) U" U9 a6 e
) b4 A/ G! f% FQT_END_NAMESPACE* x' |% g r: X
QT_END_HEADER& L' ~0 S% g/ b! l5 v1 S1 T; B
( @; q2 C% {# u9 e#endif // QT_NO_CONCURRENT
o2 N" _4 X, O9 n x" s' A- e% d- W7 r0 B% T( B
#endif" y* m# x. m/ j( @
7 V, ?2 Y$ J4 j8 \ _# A
|
|