|
|
我对syslink进行交叉编译到arm,但是出现如下错误:, }6 V) ]- H3 g9 I2 y6 F. F4 M
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'* d5 P# ^- d: a; C6 D7 \" o
! g6 {: p0 r8 O. d) l1 h
这个头文件内容如下:
+ ]* _# f8 s+ {#ifndef QTCONCURRENT_RUNBASE_H
I2 n1 Y: Q0 G. L U- p, @#define QTCONCURRENT_RUNBASE_H$ J" |' a7 M; v, o% _
; W2 I& I3 x( N2 A#include <QtCore/qglobal.h>* B. M: N. M9 X$ e
$ C# ^% t/ ~/ k& l/ d
#ifndef QT_NO_CONCURRENT# e& u& c# a- Z
: H; c& N. z0 C/ f#include <QtCore/qfuture.h>. j, S5 M* M3 g
#include <QtCore/qrunnable.h>6 G- R% p( ]- B6 K9 g% D' [- r, n
#include <QtCore/qthreadpool.h>
4 _: F- W6 V5 t
+ P$ R9 X) X0 p; ]QT_BEGIN_HEADER! A. i0 |4 t n, e% a4 }
QT_BEGIN_NAMESPACE! y& x2 h1 ]8 R" y/ j; }4 r
% s/ M/ J6 ]( Z, {2 l" J7 ?
QT_MODULE(Core): r4 Z; [0 g: w+ D4 n
6 M- c# u) E" F O8 @$ G6 i
#ifndef qdoc1 s5 o" [7 I$ J3 I/ S
4 M1 U1 D2 d2 ~: \! {/ K9 z4 gnamespace QtConcurrent {
% V' @9 u Z3 D! L9 q' |7 L9 @2 ^5 z0 t, a
template <typename T>
" b5 m6 }5 }+ w8 P' Q0 Fstruct SelectSpecialization
. C) k* Q7 b X# N$ }) C{$ f3 ~8 O8 t7 p( i
template <class Normal, class Void>' e: Z! c) E+ h4 k( `
struct Type { typedef Normal type; };
' _' k# f b C- r5 ]! O};5 F( p# D3 W) _; W$ p! b
4 n Q( D( N8 ]8 S% Q+ r6 F
template <>
- ]1 J" A# m8 a1 Hstruct SelectSpecialization<void>9 O0 z1 t6 }$ B
{( D2 g1 C1 _2 B; O
template <class Normal, class Void>9 [( ]/ M7 l/ V
struct Type { typedef Void type; };% y! ]3 k9 K8 b9 P0 O
};
5 r6 y/ T8 z8 z/ o& a
/ p/ m+ h: d0 p/ Q9 w5 wtemplate <typename T>" A& s3 Y1 L1 ~/ L) c: @
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable8 b# a6 _0 D$ g/ `" |; s K
{
, P9 @' c/ u8 A1 W& @public:9 f4 K E: g% Z4 v8 \
QFuture<T> start()
* Z# u6 k! U) j8 T {
% \0 L ?8 S) Z: I$ L this->setRunnable(this);! q" }1 ~* ^- B( q' s
this->reportStarted();1 \. Y' |3 t& h5 q/ w. T' @! |* D2 E
QFuture<T> future = this->future();
% V% K4 L6 V, K0 |8 Z" F) T QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);& J& x) h6 G* s: Q
return future;
+ y/ X. ]! A, H4 G) W }
' a& s, m: f2 _; ~0 ? g1 }7 ]9 m% _5 o; V6 x
void run() {}4 A* M) Y! K5 t8 | L. \# z
virtual void runFunctor() = 0;
' W6 t3 Y5 g! O) {6 e4 q; j: Y};
; _% _1 Q9 k4 \. U" i. s7 G) @8 d
! G% o' q/ G9 l$ ]/ Ctemplate <typename T>. a. T. f3 F5 t! x- c1 M* k
class RunFunctionTask : public RunFunctionTaskBase<T>
* j S b+ l, O# S5 D; ^! m% a{
0 m7 g9 S9 ?% Apublic:) H' f- o" V. y2 r
void run()
5 W& ~. b; e( v3 F$ Q {5 s5 F/ B6 L, V6 y; T% b1 h6 l! f
if (this->isCanceled()) {
1 w+ G1 a4 D; j% m T L this->reportFinished();
4 O& u" ~. V" U- r+ h4 y0 d, u return;
- j/ g6 F4 X3 R7 M* x }+ w$ Z: U. |) o1 @5 k
this->runFunctor();
: C! J7 p* G) H: k% J this->reportResult(result);
$ O4 I' d R+ @ this->reportFinished();
/ L$ c- h) e- Y# H5 i- ^; P1 q0 w! p }
/ \( O0 I( g- F# T6 o& \, ` T result;
2 s2 B% L& _- }( x};
# z$ Q$ B# ]( ^( U7 b* s# i4 U! T# W/ |6 l, z. U1 h. F1 G2 h) s; n
template <>5 e- U& C6 \ _5 W& y
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
$ y& l, J, ?- M1 S" t% }& _{
. z9 M$ Q/ B4 K6 _public:
* E6 r: y: X/ g# m5 x% i# d' i void run()6 s ?. K' J4 K
{
0 X# l& C5 @! w, g6 F$ E if (this->isCanceled()) {
5 x6 S1 P' O/ { this->reportFinished();1 l- [" J3 z( K6 [! m
return;4 x w7 C c2 u. t( ]5 {) J
}8 R0 g& c+ V7 p3 B% K
this->runFunctor();
6 M4 V# l3 s+ i this->reportFinished();
: o/ l9 r" T5 x: ^5 ]: Q( I }
3 p. E7 T b1 H- ~0 z1 T};
' o( T. a9 O2 O
) r7 c, E: s5 y" X+ u. ]! A} //namespace QtConcurrent
( ?; U% p# j0 W( } N# R5 M+ G* G- s+ V' V( J/ H: [
#endif //qdoc
( ?% U" g: ^8 K1 v7 I- n w( j/ S2 J8 p: Q6 M/ ~) L
QT_END_NAMESPACE
' B7 a% K2 K4 @9 | f' VQT_END_HEADER
) X6 R& H! p, U
- E. z) W0 |$ H8 z" `; E- x#endif // QT_NO_CONCURRENT
2 J1 b+ h- K2 Z6 s
: p2 v6 D& i' B3 v) N#endif' S. f4 O! _4 d( L5 W$ d3 n7 X
) P6 f& ?8 O8 X1 X2 u W2 S" o" P |
|