|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
! _) Z6 Y" n! b, m B8 H/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
' X [ F/ k2 d
0 R9 K$ y" U" B/ N: J) b8 s1 l2 f这个头文件内容如下:
! i0 H; V* [/ d3 p W& ^9 m#ifndef QTCONCURRENT_RUNBASE_H% Q l$ @7 [$ x+ p# X- }& W2 J
#define QTCONCURRENT_RUNBASE_H, i9 L; X# {4 N" H* F9 G* V/ \
' S( w# G+ K/ @+ ]( ?
#include <QtCore/qglobal.h>
& w n/ [! z( Z6 z3 e) L& K* A) U; f# }* s( |4 |
#ifndef QT_NO_CONCURRENT
8 I8 ~$ Z* ?3 M8 ~! Q! `/ R y$ v4 @' h8 A8 b& q( O$ z
#include <QtCore/qfuture.h>: D# m/ }- u) K
#include <QtCore/qrunnable.h>
- E1 K3 o" ?3 b4 v7 i#include <QtCore/qthreadpool.h>
& R; b* ?9 \) e6 @) X$ {3 C+ V- n1 e+ o; a. P' V. Z
QT_BEGIN_HEADER
9 a; A0 N2 {) T8 u- x0 S7 aQT_BEGIN_NAMESPACE
# [0 i s1 k1 Z# v; n4 f& j2 K" N9 L2 d9 X8 L
QT_MODULE(Core)
7 i8 n; _! i( p# r* l5 }& X0 Z
#ifndef qdoc5 H4 `2 _5 W/ o) L
. E1 P( x8 p! m) N! t6 anamespace QtConcurrent {
3 s |/ ^0 s7 w' I3 \" I
) C4 F) n$ }. n1 p0 o( A( s; s" m& `template <typename T>( ]( C7 e8 }7 p- V& a' R% C
struct SelectSpecialization3 j' a* Z( t) C; d+ y% B P
{* C0 X. K8 v$ W
template <class Normal, class Void>
! Y; p7 j) e+ ~$ g* N struct Type { typedef Normal type; };
( ^$ A( b( K3 I- Z. j) j" a};3 T' d! {$ r3 t; ^
9 R% W# s: l: j
template <>' ^! p+ a% P+ J5 `% k
struct SelectSpecialization<void>/ L4 `) v# R2 D. ^. Z, v% T
{6 T4 x4 {# b4 C4 C0 q
template <class Normal, class Void>) S1 M# e+ {7 K" P
struct Type { typedef Void type; };
& }8 H7 s: U# s8 |};
/ C# @7 {4 [2 o# l1 Z+ |3 j+ v! J, P
template <typename T>
4 h0 g9 U9 F3 z! P9 v) s1 [/ K3 I% K3 Eclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable, R$ `5 y) D* c' Q5 P- L. F
{
: I1 m$ c) o, o% Qpublic:9 ?2 \# R7 T9 P$ K
QFuture<T> start()) U3 a* G# l4 B; l
{# W; F. r8 c7 V" _" E: f
this->setRunnable(this);. `" M" B+ M! V4 x6 R) H
this->reportStarted();/ H! f# z0 G$ V0 r+ z9 }
QFuture<T> future = this->future();
3 g' J! W o. x4 w QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);8 G1 {0 w/ E, g- u0 y
return future;
" ^ z4 u+ m5 J% ~& `$ X4 q }
& i6 H3 q# `8 [3 |9 s( d
8 t, }: l5 p, B; \9 @; W void run() {}0 l; d `% l) F$ w F/ P. X1 Z
virtual void runFunctor() = 0;
' _9 w4 O. ]; H) r! [9 M};& |; E1 q% Z5 }) P& Y) z
2 b# w' `$ U6 Q; U) Q- M
template <typename T>1 { c+ b# L) [4 `
class RunFunctionTask : public RunFunctionTaskBase<T>
+ s7 z5 [& p! w! ?5 K6 f{
1 t" c4 a6 |/ r B: b2 f0 m- ypublic:4 {& H7 S! A. z3 ~% r0 c; K: l
void run()
# s5 t4 S0 E5 w {& c" m* A2 j( j8 `' }/ N- K* `
if (this->isCanceled()) {
- d0 H6 j5 S8 B) @+ R# Y( { [ y this->reportFinished(); A1 G- M1 ^3 r# X
return;
( v9 S, _4 \ a7 V* G4 l; k: ?; k }
0 t7 z5 y& v$ _( u2 D8 J this->runFunctor();
$ N7 s) U+ a; C% G this->reportResult(result);$ ~5 H& p. g% F
this->reportFinished();" N# v, n! b$ `4 L6 p; L, ^6 Z
}" m6 V9 O* P( q/ Z/ y
T result;
) a+ u4 N( j: e- s3 X, C};
: r* U o; R9 D
" B% ]8 j n% {& q* c0 b5 Xtemplate <>) z! J4 Q8 y3 ^, k( |0 X
class RunFunctionTask<void> : public RunFunctionTaskBase<void>/ d. V* s! p2 I4 z4 z8 B4 z
{
F. \- l* L/ M% ]6 Upublic:/ i/ v! Y0 E6 S( k {
void run()
( r; `+ I9 h8 y" P9 g( O8 o4 M) L5 v {' w5 z, P7 q6 g! N! O
if (this->isCanceled()) {+ H* `6 r; F* W' p/ i. J; [ _
this->reportFinished();
4 E" |; i& w3 y: U$ C) b: b return;& X/ w5 b: x5 |5 v% b1 m+ u
}
7 ~1 h+ h# f8 N( \9 ~" _ this->runFunctor();
- M1 N* w1 `) [0 ^+ m this->reportFinished();
6 t% z8 h' b! M4 D/ K% S+ [ }
9 H/ Z: d/ |1 U- B/ w# d- `8 _2 o2 ~};
6 G% I, J2 e& E
: ?9 z3 j2 g V$ d* q" D} //namespace QtConcurrent) f7 }6 Z) R1 W5 F0 \
% {7 [' v7 o2 R& O, t
#endif //qdoc; h( t Y$ U; g* R; D: a
6 L2 `6 D) q6 Y3 I' V# `QT_END_NAMESPACE4 O" G1 l5 D$ w+ G* g
QT_END_HEADER# W! {2 S8 T3 N; O- A# O9 k
* u6 ~4 G6 M! c- N' r- z( a#endif // QT_NO_CONCURRENT
, N, g0 T( X, v8 F; J4 b, J% ~3 H8 N [; f9 n
#endif% x Q/ `" ^9 F8 A
4 W+ p& Y( t4 M! K! J" q# T9 ? |
|