|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
* V# A7 o! b& {) e% [" b1 N/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
+ o4 D/ ?5 V6 D i/ v
$ y; ?/ K7 f+ E3 y7 T; ~1 Q这个头文件内容如下:& l0 v1 X3 Q9 [1 }1 o6 Z
#ifndef QTCONCURRENT_RUNBASE_H
6 F( B( C2 w. R6 W3 X& a#define QTCONCURRENT_RUNBASE_H9 h b. \+ [+ m4 e! [5 L2 j z. l
% f3 K! O- y" O# V0 h
#include <QtCore/qglobal.h>
5 m2 }/ q) J7 s2 u0 O n' x+ G: C* T f+ r4 Z/ r
#ifndef QT_NO_CONCURRENT: M2 x) h: {1 J4 B) T$ D
6 A& B0 X. V! V! M$ y' c1 Q
#include <QtCore/qfuture.h>* f- H* b/ w' J! S3 [
#include <QtCore/qrunnable.h>0 y8 z5 S5 f7 K) s4 E) T
#include <QtCore/qthreadpool.h>
v! \* l; j6 T. {" l n* ^+ }( D" g
QT_BEGIN_HEADER
$ w* e4 G' h6 j8 X& bQT_BEGIN_NAMESPACE
! }3 ~# b' l' ^2 [$ V6 `. T
8 m5 X2 O+ Y ~, DQT_MODULE(Core)2 P0 ^3 ]! E: e5 z9 s) U Y4 {
. J# q% f* E2 y#ifndef qdoc& T9 x( f; e- @& I o
" z0 \) t$ R P9 U: \2 l! e, Fnamespace QtConcurrent {
( b" N4 t" U# v
1 g8 K# b0 T, g% J3 F5 [6 I4 Z; mtemplate <typename T>
5 a6 O, e- _+ ~3 F3 Dstruct SelectSpecialization' x% I6 G1 ~5 C" {
{; h8 O# `5 D N$ J" Q# I
template <class Normal, class Void>+ z% [) I* i, u3 g& C
struct Type { typedef Normal type; };
' I1 p& l( r+ I};
. i; h) Z& h& [" ~& T
1 x# s7 Q* G4 Y! y" {template <>" ?# r' ? A# d7 i& a% \4 n
struct SelectSpecialization<void>$ W' [3 h: J0 D
{; X) g" I; h5 `8 a
template <class Normal, class Void>
1 V, ?% W! x3 _1 [9 M- {2 s& w struct Type { typedef Void type; };9 j4 g/ [, y: b' q* W
};
: O* m" d7 V+ I; I! V+ l+ n: B- T3 O, I: i& j/ U; B
template <typename T>! X( J* R8 s9 a4 ~2 f, `. e/ V, h
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
M( o& M" J) a$ q$ L{
2 h M0 I Z7 N4 Y% j2 Kpublic:+ w$ a) Z) }2 W2 K' G
QFuture<T> start()
9 {( v3 o3 B( ^" ]% d {6 _3 o* Q# u _- x
this->setRunnable(this);
9 o: r7 U2 N$ I: h0 z- X# V this->reportStarted();
) P' ?: g( A; E% ?9 ]; G9 q# L QFuture<T> future = this->future();
0 e/ F* U4 U; t6 N) n! g; `7 ] QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);$ ^6 k2 ]* I0 U% K- x! M
return future;
, C+ q' h; A9 f) P+ n! ] }) h$ j! h7 @0 n/ M
) F. a9 {: w g1 q/ h; {
void run() {}
3 {2 }! a/ h+ G virtual void runFunctor() = 0;
; p7 |; D% B& F3 g};
! ?6 [1 B0 B& V: {
) a/ f4 I. k$ i: W5 p% O9 k! V1 Etemplate <typename T>
- c' f$ Z: v/ A5 Aclass RunFunctionTask : public RunFunctionTaskBase<T>
8 N7 _) G. b: v, ]; S{8 l( q' A4 \: N8 w) f
public:
6 a# M( x2 W) Q9 Y* V2 J void run()& Z6 A- X v" a2 d B
{) d5 T$ Y9 c& u/ m& X
if (this->isCanceled()) {
1 |3 g6 w5 l9 F$ p$ K& D this->reportFinished();
& `* k3 |0 U* a L* [, | return;) @: _. Z" H1 m
}8 P; i' S5 M& l% D. j; Y
this->runFunctor();
% b4 h" T$ O6 F. U) s& I _ this->reportResult(result);
0 C9 G8 {& w1 }, a1 j; J this->reportFinished();
$ q9 N. B. m% o& J$ [: P. u }
% y2 m3 O+ X% t _3 F8 T: z T result;
, c( s3 w ]! L5 d};9 H: Z2 n3 _, O! z/ W- Q: a8 [8 G
% g5 ~& a" Y% W- T% i7 [4 y3 Xtemplate <>: R% K- n q8 P: o( h! H5 `; m
class RunFunctionTask<void> : public RunFunctionTaskBase<void>: {5 X# K+ L8 K6 d
{$ D, c8 L5 {& k$ N5 `3 N
public:
& O7 |+ @+ `( s6 Y! v void run()
! v" Z# c# T4 q9 R {; ~ I" x0 D1 b0 K5 c" E T/ _
if (this->isCanceled()) {
) f9 v w- a, {% w this->reportFinished();* I' G6 q5 k; D3 Z- z6 [; v2 \9 g
return;" z4 r1 ^) w* {& w9 Q
}7 [) }4 |* g* I' z
this->runFunctor();
& y- |* |+ x. k8 k: p6 \ this->reportFinished();
" L: t9 N2 c" ~, I9 [: T+ \% B; D }: A7 l- E% e- T. l. Q$ N
};
9 O3 |; H: @. W1 @$ I
T% I' g0 [) v} //namespace QtConcurrent
$ S5 u' L2 ^2 C) J3 H& ]5 D+ z2 \9 S/ _5 b0 s
#endif //qdoc v+ P. J4 Z& |' Z" W' m0 p6 U. T
* q A9 ~3 q7 j7 Q. y; n0 }QT_END_NAMESPACE
4 ~ Z) N9 z0 r- K, wQT_END_HEADER
+ @. ?8 T4 ~ C: z$ u2 S3 @( a, C/ L# E3 t B
#endif // QT_NO_CONCURRENT- l) L' G1 O/ T8 @7 g) t* ?
. w. w0 K$ |% W" _7 h" B
#endif
. i. l' u: R, d8 N% d
* G o/ X* ?+ [, } |
|