|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
% A, f9 @# N: u; b) 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'/ c+ k8 W5 O" |0 z" s
9 Y2 n+ R2 [$ s: B: \7 ]
这个头文件内容如下:7 P( l5 G0 `& r3 N( J- f$ }
#ifndef QTCONCURRENT_RUNBASE_H
0 t. E0 Q% T8 Q$ I#define QTCONCURRENT_RUNBASE_H% C& f" F" I1 M+ J# m( a( S
" e* y1 r4 p2 b4 P: g1 n' }. U#include <QtCore/qglobal.h>4 j. l9 N' z$ X: u9 D- w
% `+ d# H% u' v& ~
#ifndef QT_NO_CONCURRENT
; K, P% l# G d+ ~* _1 R% `) K. A( c' O. l/ R" ^5 u, n/ S0 K) I
#include <QtCore/qfuture.h>
1 ^4 e4 a7 J8 f5 P* o7 w- t; Q#include <QtCore/qrunnable.h>: D2 Q9 @2 o: r
#include <QtCore/qthreadpool.h>
# ], \1 ^0 Z/ C3 k6 ?1 M
- R1 Z3 ]" V+ n4 H$ i4 i6 @% dQT_BEGIN_HEADER
3 O8 g4 C( c$ x/ ZQT_BEGIN_NAMESPACE
0 p" `/ S; b+ H& n) F* E7 d- `
2 O: F9 N) w$ J) Z5 ^/ |QT_MODULE(Core)
- d& ?9 r+ Q. {' R# h* {& D1 \ V
5 N* E) u4 F4 _#ifndef qdoc: O- H+ Q( P2 p; M
' d6 O$ b$ h Unamespace QtConcurrent {* H4 P1 n p3 T8 K
( h) z1 \# { ]. o' @/ etemplate <typename T>* W, T4 H4 W" K/ t5 N i- ~! }! O
struct SelectSpecialization
" N2 Q- e* v3 _7 D/ T% M! ^1 D{" H$ D6 {" q" }$ o0 {" x7 f% Q
template <class Normal, class Void>
& q) k1 T! \) s struct Type { typedef Normal type; };
. k" ^- p7 e- U9 r};
( F6 s1 F8 u( k: h& {3 a- o1 {* ^: n+ ?. `% Q% x# y
template <>
( X% X# j" l" t( n% u- Gstruct SelectSpecialization<void>1 A6 N* {0 W1 m& s* f, `+ z: z
{0 j# v4 ?( E, |% e7 b8 h
template <class Normal, class Void>: Z0 W# t1 _1 f
struct Type { typedef Void type; };. r% f5 x+ i3 X. Z9 t8 I; z! R
};- I% [. W* n) v, A, v0 L
/ X5 c, g1 g4 J, P/ |
template <typename T>& T6 w0 r$ B( Z5 w+ V6 r& A3 _& u
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable/ }. O' A) @* R
{
. e; O9 Z3 h ~. R5 F; mpublic:, H! i0 ~" @% t1 Z; i
QFuture<T> start()2 }1 f) a3 ^4 f& |0 R) D! Y
{ @8 G0 T' l4 ?6 A, e" A
this->setRunnable(this);
. N P4 \7 `; U! E; Z this->reportStarted();
+ }& |7 e6 H( ~( F QFuture<T> future = this->future();" q F; }6 y+ m0 y7 D3 F$ K
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);1 C# B4 H1 t# F' O
return future;
: U [, T6 Y. L4 x" W }
0 p0 r8 H/ q+ A. c/ V2 P; A$ j& }8 ]& f' }1 g0 r0 v4 k1 P
void run() {}1 m/ A& ]' J# I3 C7 ^
virtual void runFunctor() = 0;$ ?2 j( p, F Z2 ^
};
$ G0 m; e2 E8 z" D: n8 r# H
{! g6 T) `. a/ k( Utemplate <typename T># V. L1 {7 L" E+ c
class RunFunctionTask : public RunFunctionTaskBase<T>8 w# K4 Y9 t, v1 w
{
) l c% H) p" f9 B' n7 q. @. {' W) \8 Qpublic:
5 e+ e0 Z5 u* D5 C+ h/ P3 o. S/ @ void run()2 c4 @. V8 H5 |- y" O- ?; L
{
R; a0 ~; r0 R$ N if (this->isCanceled()) {
1 G1 d1 N, K' m4 U% n& ` this->reportFinished();
, J5 u; w' o$ U/ O# R return;
6 R, _; H! \4 ?" `: ^7 l* ? }
- R- o# I& @2 G8 c9 w5 L this->runFunctor();/ k& O6 b- u5 Q! {5 N# z! V$ Y& J
this->reportResult(result);
2 q- a( E3 [9 @ this->reportFinished();
# S7 k5 b2 m7 B# s$ W- {/ r$ U/ E6 X( Z }+ g. G8 {' `5 @# U5 K" E9 F
T result;
o& \# z9 F# @* O' `; Y};/ h% \' x9 Q% c$ t5 e" Z
. p4 N7 A' W7 m) b2 W5 b, p( r$ d/ b" [
template <>
( w: K& N0 y5 ?* z9 aclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
- s/ H% ^% D- W* B6 r- u4 }, d{ N ~( z H8 X4 L1 m
public:4 u: ?* c# |4 \1 e
void run()
6 I3 K% A; j7 @$ k3 }; r {! t& A9 |& j& k9 l3 r
if (this->isCanceled()) {1 v( z1 p- a- {7 e( @
this->reportFinished();
. C* e( C$ D9 ]" l3 R4 l return;
0 o/ A2 @ I5 c/ e }
( H9 z/ m; B, P; w& e this->runFunctor();
& _! c4 [, I+ F6 T+ ]" Q this->reportFinished();, Z" R" {! l: { z6 E/ T) L
}
% T6 r) y5 n% {+ n$ t$ s' f+ M: j};: s; h# n# f& i
. L! j. Q& q4 R+ i' g2 S( x
} //namespace QtConcurrent
, X" n4 m" ~( z5 y/ I
7 ?$ y. ]' Q! T/ `#endif //qdoc8 z, H) {) s- R8 S; ?( W9 _$ Z
7 T6 V5 ], Z8 d
QT_END_NAMESPACE/ \$ d% K' l2 W9 P7 E
QT_END_HEADER
. z0 z" L$ O/ k. W# r4 M' \# [
4 a! n* ?* r, U#endif // QT_NO_CONCURRENT1 D5 G9 _$ p' N6 p
- N/ K- F/ T4 \7 _: i& o
#endif# O! N! s1 b+ J3 b
# `0 e: ~) _) q4 B l# ? |
|