|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
. \$ y4 v1 c" `) X/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'% E2 h' W6 V/ \5 u, b# O( E
5 i& ~! K1 Q W8 A2 E8 u. O这个头文件内容如下:
0 @1 k- d5 m, H" k7 E" ]4 W#ifndef QTCONCURRENT_RUNBASE_H F9 [* _- M7 A K/ ]! D
#define QTCONCURRENT_RUNBASE_H0 J) K0 e- G& W& G. U7 R; I1 ~& c9 b( Z
$ u$ w. Q0 h% f* ~#include <QtCore/qglobal.h>
4 R- r8 d% Z$ T+ N( \/ R! X
+ t3 w7 x, }" ?#ifndef QT_NO_CONCURRENT
1 E/ N3 e8 X3 ~+ C
1 B% [8 g5 Y5 h: y#include <QtCore/qfuture.h>$ P" U3 g* z" u# s* U5 V) b
#include <QtCore/qrunnable.h>
7 [ u* m B" m- w, |+ a% K#include <QtCore/qthreadpool.h>
# J9 n, O" F3 X* b6 v8 \8 d
2 n. R, i Y9 h$ O: \7 @% DQT_BEGIN_HEADER" i3 |" U# L8 v% z
QT_BEGIN_NAMESPACE u4 V# p# h3 t
: P4 ] U) e5 V5 n" y. D' o& G
QT_MODULE(Core)
+ A. F9 ` X( M; t
2 P- L; N& D5 R2 p( O1 {#ifndef qdoc
5 t5 U2 z0 I* r, p( d" O' u* l* I8 w5 s. l/ I4 N" Y+ E
namespace QtConcurrent {* a9 d6 }6 x+ I% b; e; a, { ]
' T& I( Y/ G ?0 U) g vtemplate <typename T>% p0 n0 f, }$ g& ^
struct SelectSpecialization2 F) x& C( \. E
{
* m* i/ J* L$ y3 q8 ] template <class Normal, class Void>' i6 R! h' v! d+ N, @ @
struct Type { typedef Normal type; };( i; W' a) i2 _# [4 k- s6 v4 Y
};
2 x+ W: i- B% @0 T4 _" X+ P- Q" m2 \& b3 B
template <>/ r# O7 F$ b- Z+ ]
struct SelectSpecialization<void>
; Y. U: I5 Z; D& B1 S v% m0 ]{
7 y& K' M$ G. e# u9 B template <class Normal, class Void>
1 K) F, @7 E* M1 U# t B5 ]. ^ struct Type { typedef Void type; };, _$ T* o( H5 n$ M _+ l3 ]
};5 c5 D8 I* K$ c3 m7 v: B
0 T5 f g- J# }/ o1 `' T, f9 itemplate <typename T>
9 b5 U; C% t6 k7 L0 o/ oclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
' q1 y) Y0 h( H, @. H0 z{+ \% m. o7 B j( Y& l
public:5 o1 O7 z) t- r* W7 S' Q
QFuture<T> start()
8 F R0 Z( t6 U7 A1 U$ O! c {
) U! l* {0 w5 o this->setRunnable(this);) M: ~4 P& Z: m7 c5 a
this->reportStarted();
! `7 b( D% F# @; B QFuture<T> future = this->future();1 d) a$ r& U3 t) v# R0 t
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
4 h' v# U, G- v$ D7 h return future;& F3 m4 N# O& F; N8 v: R
}
, @/ S; E4 b$ ]; \; I
9 t8 n2 J& @/ ^" V9 H void run() {}
) ?# t0 X; o4 m: |1 b virtual void runFunctor() = 0;
+ B- w# H# g* |* D, O$ G# I};; t& O; B$ S8 c2 m
5 V0 I# n7 k9 O. C2 |* ftemplate <typename T>
/ z- V1 R4 g( s9 {' Oclass RunFunctionTask : public RunFunctionTaskBase<T>/ z: h5 K0 B# i6 D0 s U9 s; r
{
1 @, Y' y3 p5 h! H. U2 j2 y$ W- T1 hpublic:: H" Z& Y( { H1 t/ }7 h
void run()
1 R; B. a+ g6 P* t: S! T4 I ? {
7 H! c2 S/ z) S; ^4 _ if (this->isCanceled()) {
9 @+ V9 g* Z o r. t' P1 y8 @# P this->reportFinished();! d, Z3 M/ h# t" O$ P8 m
return;
7 _6 I5 Y: ?" y# i }0 W3 l( \9 X+ s0 Z
this->runFunctor();
3 O1 }4 D9 l* w" m this->reportResult(result);2 U/ \! A( x" F7 O7 B
this->reportFinished();
+ z2 J3 q7 ?. [! H9 r: Q! k }: T3 ` Q1 S3 C7 \! ~6 \
T result; c2 m% `' b/ U$ b
};
0 e3 G0 F6 ~) v6 ?- U
2 C* _( R7 n5 ~. ?3 |% j9 ftemplate <>
o* v) s2 M6 y* F( b2 V- uclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
' R* A, F. t' I{
! }1 E- M$ l% `) bpublic:/ F% M! J4 o2 W2 I8 r
void run()# _$ @' c. f1 J: T9 G
{) z' v. ?% z0 p, D
if (this->isCanceled()) {
1 P- d G: A- A; g. `+ j* { this->reportFinished();
! D3 M6 j. [0 L3 U, g" a5 c' J6 I return;
% w3 O+ c8 D) o/ A# Y3 D2 i }& t, Y5 V. [& B4 j
this->runFunctor();, I/ s* V* R/ s4 C" I
this->reportFinished();
2 u @3 W& A6 i: C! B }
8 l8 f( l8 e, S5 V" Q- `};
: g1 Y, x9 P4 \, _+ C5 ^/ _ i$ h
} //namespace QtConcurrent. G7 y8 Q7 H; h d% Z# N
4 M7 X7 J/ j _" R+ x* U4 d8 W. }! j
#endif //qdoc) c5 y/ {3 A& r/ N
% @& }7 g- n0 h) s; l- O1 o
QT_END_NAMESPACE d! E% K5 ?% s" C- j
QT_END_HEADER
& E5 ]/ P" B& u6 }. C
8 i3 ]* n: h; v0 l#endif // QT_NO_CONCURRENT T, u% U4 r: a. ^ n, `
8 |/ @1 v" U; i
#endif
4 q% p) d" I, v' G5 ]4 Q4 w. i
. B* j. M/ h0 s& D1 T7 S |
|