|
|
我对syslink进行交叉编译到arm,但是出现如下错误:. e7 F3 D+ ^. ~- ]9 F* F
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'9 B* F/ Y4 U1 \$ g2 R9 j
& D& x/ e5 v# ]9 q Y5 k! ~这个头文件内容如下:9 c& N" O8 G+ h0 c/ ?
#ifndef QTCONCURRENT_RUNBASE_H
1 Y! H1 b" N. F: g#define QTCONCURRENT_RUNBASE_H
3 I( P$ l. m9 c# I$ e; ~2 T! D1 ?% c$ q6 K+ I$ Y
#include <QtCore/qglobal.h>- J7 P n+ f' p6 ~0 s
( ~( W( p4 P5 w2 h, z# D- X1 O#ifndef QT_NO_CONCURRENT7 j# E, T9 Y: n' I/ }4 `) U
5 U: G8 x% |5 N2 W- _+ ~% A#include <QtCore/qfuture.h>5 G! e7 ^; s3 ~. o/ x9 P
#include <QtCore/qrunnable.h>3 D) X8 d" i/ O; G
#include <QtCore/qthreadpool.h>
% t7 o' E, \. X6 `8 N
+ e$ h0 F) ^$ o6 I; jQT_BEGIN_HEADER" t% T/ k- u% I l" V
QT_BEGIN_NAMESPACE6 b4 A7 D- O1 x- o. N
0 ?$ ?# i; l1 i6 y
QT_MODULE(Core)
! M+ z& x* v9 |8 p) z
( H* Z. ^5 ?' l0 r2 s) \#ifndef qdoc
: F! T/ G# m! v( ^- ^0 f; f7 g L3 K {: v$ E+ x
namespace QtConcurrent {# _1 b0 W9 u" R' C0 y$ O$ N
7 ~+ h8 T/ U0 s2 C3 e8 Y0 o* Itemplate <typename T>
5 C4 R1 [, C \2 g+ Istruct SelectSpecialization
/ { I. {9 J6 c7 j{& y# `8 e3 G) i7 l+ [( S
template <class Normal, class Void>/ E/ G; C# j: { P
struct Type { typedef Normal type; };+ P; k1 w! _: r9 x/ w* [
};; ~9 G ]% k, |& O2 J$ }( R
" B) y' ^, X J; s( h$ d2 D; E2 W$ L
template <>5 _. d0 ~! s1 i
struct SelectSpecialization<void>
7 R; v" u7 t9 m8 o0 n4 g- P{* x+ x. S1 Y* s1 _7 G& a
template <class Normal, class Void>
2 H+ f; O$ i$ G$ e0 }) [ struct Type { typedef Void type; };4 U# F3 Y; Q; m' w$ D
};
) W7 \ T) m1 v4 e
0 ^) G: c- W: h$ z- }- {9 Ntemplate <typename T>
4 W* d: x+ i1 E7 M# Jclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
$ \2 l: ~2 g& S( x6 x{/ F7 A" c+ d1 `
public:
1 B2 U& x* A; B4 x1 d# H. O QFuture<T> start()
& S4 \8 P& N( S5 y {
9 L( c- F6 K, D. e this->setRunnable(this);& h8 k5 {* U9 p- O4 I
this->reportStarted(); a8 g3 u; u0 m
QFuture<T> future = this->future();
/ t2 s) V9 @6 \% w j QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);" X5 R6 {' [! c) s
return future;
% a4 G3 N& E8 V0 h n }$ B7 H6 l, U+ o N8 g
9 A8 I3 B$ ^( v. k v4 n! Y void run() {}
( }) w1 l1 s3 t/ j virtual void runFunctor() = 0;+ Z) e6 K* m. m# Q3 Q' X
};
+ e' V! e5 Q7 y) C9 R" m9 o2 ^+ u: Z7 G2 E1 Q" T0 y
template <typename T>
- h9 j; b/ P) yclass RunFunctionTask : public RunFunctionTaskBase<T>! W7 V' @8 D- ]' a& ]% V1 E' j* F
{/ u: E7 `! g* b
public:
* V# K; |+ c* D& C void run()4 {: A c1 N% Y8 M2 z9 M
{7 N7 R8 O0 |) P# A
if (this->isCanceled()) {7 n8 f L/ V1 @8 f0 F
this->reportFinished();
8 Q; Y3 o2 [# f% o' `: p return;
) t% d% g" t* l2 X }' w$ B2 Y8 C$ z0 h, k) a* Y
this->runFunctor();
* o, L; n9 r& T N' q3 o this->reportResult(result);% r N/ ^+ \7 [6 t4 Z, B
this->reportFinished();$ l! a) k$ [1 B6 y9 w8 [
}! M+ b6 W* u3 r+ j! h0 N
T result;
0 B5 A8 W5 Y: ?1 m! {5 A h};
, d, E+ N$ T% q1 J" k- A @$ \2 D1 H* A, s6 u
template <>( | F. _' N1 ?( Z9 E+ k3 V
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
Z8 b* s5 E, Q+ }. l0 B/ `5 d{
4 O+ P2 D) X! s( `% P* B0 npublic:
" l9 ^7 Y# x$ V; ]$ { void run()
, b9 }( n! I) x {
( C: T1 T2 x. o+ B. ` if (this->isCanceled()) {8 h/ _" u$ v! @! o" s- V8 g- P
this->reportFinished();+ \5 S: n* z& w& R" N$ {) R
return;
: Q: e& M4 j" ~0 Z+ k6 n* L: h: I }
' u7 s5 u( o! G9 l! M this->runFunctor();
; d" e( M% I7 T4 N1 g& {% r this->reportFinished();* [4 C$ s. y$ R5 \
}
/ j8 g2 `- P" V6 T};
2 t6 P- f5 p2 { k4 e: r* C' [- f
|+ H: W/ `2 q} //namespace QtConcurrent
9 x% l; c1 N. |& @9 q
: q0 h8 N. y) u x8 l4 m#endif //qdoc, T4 t7 l' U# g; B; W' H
! ^1 ]/ V# v. y
QT_END_NAMESPACE
1 m, d" {+ S; sQT_END_HEADER
5 K9 _/ V) h" a% k; Y) ?+ t1 s! O. z7 K3 U l% z
#endif // QT_NO_CONCURRENT
1 R5 ?; }- _* \: O: {8 O0 q& b; R$ |# \- [
#endif
4 L8 S, v, C! p1 y+ n2 l7 `6 Q; P$ m- l5 {$ X6 `9 v0 u( V M
|
|