|
|
我对syslink进行交叉编译到arm,但是出现如下错误:) U' Q1 @# Y7 {: _- H1 _
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'+ W% {5 y+ D- Q$ ~$ o
/ X* ~, \6 o T: j
这个头文件内容如下:
_: N. l5 s# S/ ?0 m#ifndef QTCONCURRENT_RUNBASE_H
8 b+ @ x4 l! v V* t: Z#define QTCONCURRENT_RUNBASE_H B7 ]# q( K0 z: z
+ g$ X" a& G/ F5 G#include <QtCore/qglobal.h>4 N) J* k% }( Q* P/ k
" H' J/ D( C; h& B$ o
#ifndef QT_NO_CONCURRENT0 v. o+ H& x7 H: v
% u$ |7 g, q+ [#include <QtCore/qfuture.h>$ \+ q# u: c; }1 N0 k8 J
#include <QtCore/qrunnable.h>
5 B4 K; |% [# y. D: U( e4 s/ C#include <QtCore/qthreadpool.h>8 l. f; o' P+ A' ]' W
! P1 @+ D2 k4 s9 q/ r; a% [QT_BEGIN_HEADER
) U7 l" e# m$ B0 NQT_BEGIN_NAMESPACE% g, ^0 j, m" r4 O+ v
: |4 U( M4 P$ n1 G
QT_MODULE(Core)
% w1 S7 |9 W0 t; ?+ Y/ \
1 ?- j( B1 q! ?1 P" y! F _$ w#ifndef qdoc
* P' ?/ [: @9 e- C1 o
; K! w1 _1 ^( }- tnamespace QtConcurrent {
2 k7 A/ n% @; o; i/ G2 t* E/ j" Y/ h+ J6 g% J& x2 ~+ O( B! b* l5 {
template <typename T>
2 M; S. _- j' fstruct SelectSpecialization
4 k- C" X1 x+ y# N0 b" q{
3 e7 |, z4 p* x6 x template <class Normal, class Void># c4 D. d$ r8 d# x% B/ h
struct Type { typedef Normal type; }; g, k4 c$ f% Y7 L# g& h; J1 s" m
};: R2 _2 J w# F V3 T% H
4 @ M3 V7 x* {! p
template <>8 ]7 p+ r4 d- t/ Y7 o
struct SelectSpecialization<void>: V( W/ m/ g. }2 b
{1 V0 }! a, |: \0 ?6 ~
template <class Normal, class Void>
4 x2 r' d, U Z) ?$ G9 } struct Type { typedef Void type; };
( p. h O3 M6 b. H% v};
" _$ Z8 O( y4 W9 e7 F: J5 V1 {! W! ~" p
template <typename T>
/ S- V* g) q: ?/ Q5 k0 u7 yclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable/ _# U% L/ T) k$ C, J0 K
{
6 s& Y4 M/ q7 N% ~ Kpublic:
' e, \& [$ U7 V Y QFuture<T> start() k: O4 y- P+ x' P/ _$ [
{
# Z# V5 x- Y" Y+ d: h* [ this->setRunnable(this);
. l3 U# R- P0 \" N' w this->reportStarted();
5 T/ {+ n% E- t3 }+ n. [& W QFuture<T> future = this->future();9 z& o6 b7 m4 u$ `3 a; ~7 e- H
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
8 T2 T- p: V$ }7 }5 \: b return future;
1 I) i" t; Z0 L+ Q& n }
4 H+ a9 C- N' P# e G5 P3 i# b6 W- G. B6 t4 f
void run() {}7 t9 K# D! ?' z& U9 X/ ^
virtual void runFunctor() = 0;1 f) ~# `2 P- h, p3 A! k) ^
};& z2 G+ {& g" G7 ]4 X" M8 `% h% L9 o
7 \4 ?9 X) K; [3 V8 E" J
template <typename T>: S8 H" G- E6 n4 f9 r! d% P+ b
class RunFunctionTask : public RunFunctionTaskBase<T>1 k7 `, E7 R! W& q: @: k& J+ T4 p; D; t
{
& m* K1 ]1 w5 N) C8 Lpublic:
) S% L0 x7 R% O: g8 c void run()
5 j2 k+ q' G6 W" k, o$ f8 }. L {
G4 e$ f" _& \, V3 C, d6 J4 J3 Z0 I5 W if (this->isCanceled()) {
* ]6 B2 [! I$ {* \ this->reportFinished();
! d7 z! P/ D1 A# q: O F6 e return;( E8 B3 N; z9 u+ t8 i
}6 U* R( w3 p7 C, K- Z1 J
this->runFunctor();1 v$ w% @, |/ x5 k7 a( b/ v
this->reportResult(result);
8 s4 F d- h. S& K3 \/ } this->reportFinished();/ \6 R4 g1 W; e) ]2 ^1 ^
}' F/ R2 A: e! n& D* p9 V: H
T result;/ G. F" q* z5 k( ~) N
};& z4 ?; y, M3 c$ y
8 k) `8 a5 g2 P, X X3 A. k6 Etemplate <>
$ K+ k2 D8 n* N% N" Y$ b/ Rclass RunFunctionTask<void> : public RunFunctionTaskBase<void>" J% o8 ^7 v" k% X; d
{
5 R7 X& r5 ?! spublic:
5 }, J, x% B* D" \6 \2 k: k+ w4 Z void run()
5 V, d4 j0 z+ f$ J {6 \0 \& |+ t4 b: x0 Y4 U
if (this->isCanceled()) {3 K5 A7 l( I! `( `0 K1 J) ]
this->reportFinished();
, @3 _( z0 B! w7 r return;
' x7 f0 b5 v1 {# {( i: x }
, A4 `! a2 x* l4 {+ |# ~. l' s this->runFunctor();5 n6 i3 U9 T0 `# Q9 T& t
this->reportFinished();
3 ^& S- n- a! f$ l) p6 m }& ]4 T" D3 F' y. K6 r6 c% v
};
( c; l# g) @ a0 ~% U
. b/ X. Q: z) l/ k% G9 |1 q} //namespace QtConcurrent
9 J z0 |# {, @/ d( e9 t: J% S
" r9 w; L+ Z. L/ k#endif //qdoc$ J* `* w8 N% E9 Y" z
% f: d8 S. i* E! s) Y2 M4 v9 H" r
QT_END_NAMESPACE2 N& l; V3 X3 S1 G7 k! w* ]. z
QT_END_HEADER+ H# E5 Z, ~6 V
6 G" _& B1 t% b/ U+ t5 e7 c
#endif // QT_NO_CONCURRENT
2 j% m' V* ]4 s9 q7 z+ \" S3 X$ a; g
#endif
p; l( R) G; ~9 y# x! M0 e
}* j0 { p0 M8 @, l, F |
|