|
|
我对syslink进行交叉编译到arm,但是出现如下错误:9 T, H, f! E8 d0 c
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
, B- q1 D1 s4 ?+ d' c
5 D$ Y2 S' q+ `9 ]1 R4 Z这个头文件内容如下:, i9 |6 Z$ ?7 r* B3 d( o. `$ u& W
#ifndef QTCONCURRENT_RUNBASE_H
1 T; b+ R, O. M, B+ O5 z) f#define QTCONCURRENT_RUNBASE_H
5 H9 \ h' f0 |6 B% e+ [* {' R- [- A5 [3 \1 o A
#include <QtCore/qglobal.h>) r+ I1 _1 [! N6 y" y( m( f3 A% d5 w1 n
$ \ F' M% ~3 f7 {! d
#ifndef QT_NO_CONCURRENT
% f, [6 J0 D1 s6 `; T
+ Z. h+ e) k* I! n$ @# `% t4 h#include <QtCore/qfuture.h>; x, K" ?, W ~; y# F
#include <QtCore/qrunnable.h>+ t3 }) q: B# g. H! f% N
#include <QtCore/qthreadpool.h>
5 E" Y; o6 u( h3 U: \( o
7 F! v' O* [7 G! N/ l4 Y# FQT_BEGIN_HEADER+ M; D; Q9 @ Y: m7 [( o) l+ h
QT_BEGIN_NAMESPACE
, p! ^. c0 |# W0 |. w
7 y) D: M G- J% D& `' wQT_MODULE(Core)
* q/ t# x3 @! t5 ^# `& d' Z# S A3 f* F
#ifndef qdoc
; p) _6 j2 D/ E9 z) x) h% D% Y
' j3 V1 [7 K8 q( j/ F& p- N5 @namespace QtConcurrent {
6 _9 ~- F2 n! r7 k' r# g( `. {, p a3 Z1 i7 z
template <typename T>
7 G9 y( F+ O& s/ V/ S4 Z! sstruct SelectSpecialization; i( ?9 P* x( D6 x8 K/ K' q
{0 _3 E/ M5 X G
template <class Normal, class Void>
, K A+ S; \: p struct Type { typedef Normal type; };
0 {& o4 d- ]; z& h; K S$ [}; M% {7 |$ c2 i p
# H' S3 L y# ?
template <>
; P1 T* e! B5 h; m) {struct SelectSpecialization<void>- T4 G$ k1 H- r3 v
{9 {, f+ w1 E# \) c6 s3 D
template <class Normal, class Void>$ K5 f) p4 Q4 L" x/ J$ ^# H' \- K# O
struct Type { typedef Void type; };! `5 m H: v1 g0 B2 a
};
+ K' K- |; }5 {6 w- B5 ?3 z+ p7 Q) I8 j8 ~& D
template <typename T>
+ O }1 F+ T2 eclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
2 ]' d) Z. P- G4 L5 |3 I& X# S{- A0 }# |( F* k$ V2 L( X/ T" ]
public:! y+ k0 j: ]6 }$ J. P8 W# C& a
QFuture<T> start()
9 b$ V3 c0 P' M {9 C% l+ V! }1 p( H' A
this->setRunnable(this);
7 \) b6 t9 A3 m3 m* L7 s K: N this->reportStarted();
7 r2 K; w$ d' Z1 D, G: k1 I QFuture<T> future = this->future();! V; X5 o0 \0 Q! H( t
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);1 v) [4 D2 w+ G% B# p
return future;4 l* W: L5 q3 L' b6 @8 ~7 q" g; s9 g
}) b7 D; |1 H2 H4 ^& m" d$ s
8 s" i1 w+ l- K* |; D( l* `3 z6 x
void run() {}5 o* P% e# T# w* u: ~" m# ]/ x" I
virtual void runFunctor() = 0;8 C" o. M# V ] X' {; Y: C$ y) `* B
};
5 n0 O1 Z8 v5 t2 S7 B
! }! {) v. F. h9 e1 otemplate <typename T>1 ^! ^/ |% `, I$ z5 ]. A" A
class RunFunctionTask : public RunFunctionTaskBase<T>) d/ g1 k5 z( z; S
{' F2 `0 D9 P- ^$ |. T
public:
) ^! L; V* x6 ^2 W void run()9 t b E) F/ ?+ I- Z+ ?
{
/ P! e1 d# C! |# | if (this->isCanceled()) {
/ q" C, B" N$ B4 E+ w7 E5 [ this->reportFinished();
- x) R/ D$ c6 }2 n return;
9 p8 \$ Y& v( K; f) w- @1 D+ D }5 i9 j k( f3 `7 v. @# t# |
this->runFunctor();
0 i+ H$ @% r5 C; P this->reportResult(result);* v3 K: S$ h6 ~) A0 Q
this->reportFinished();4 m) b- n- w. f. Y! B
} ~3 Z1 B2 \/ @ E8 C' v% A
T result;
# h ^/ e( j5 e4 O* ^. {};. B5 Q/ B* [4 c- _9 d* V$ H
) a& |# J Z' Ctemplate <>
0 }! S0 k4 a8 b0 A. ~9 _class RunFunctionTask<void> : public RunFunctionTaskBase<void>3 A/ m- U) n4 t F2 H
{
L! O. S2 N9 u, v3 upublic:6 F! X& _0 r+ w2 D: Y
void run(); U- ~! W' [) w% e
{
" C: m, @6 ~9 O; |7 o. Z' B. j if (this->isCanceled()) {4 f7 W3 r) N4 z/ C3 B( W
this->reportFinished();
5 t# A1 b/ |; y, C) ]* L return;
- T* Z7 M' \% Y1 G }
3 ?; d% q0 m" L$ I this->runFunctor();
! y# `" O" w \% S3 q this->reportFinished();1 l. q* H4 x* W% K( Y: i! Z
}- A6 w5 ]6 n4 F6 S7 Z. X' x2 Q' P
};
1 | n; K$ c: q. ^' {: w, ~$ E" U1 i( r: h
} //namespace QtConcurrent1 M4 @" S1 q2 E$ x
- ] y8 q' D. i0 d2 j) A
#endif //qdoc
$ [6 p$ u/ B5 |/ D( C
6 y6 ]1 s' Q- R D# o# |1 EQT_END_NAMESPACE% g J% S& g7 v K
QT_END_HEADER2 P1 K: D" C% s9 g/ Q$ s
, {/ y' z; C8 y2 g) c#endif // QT_NO_CONCURRENT
1 |1 H. T6 o- B2 i; U; S" \5 h& C( T$ q; K; d
#endif
! d, ~9 A, B$ k7 |$ [: e
9 D; \, ~' C1 \9 W6 L# F Y& I |
|