|
|
我对syslink进行交叉编译到arm,但是出现如下错误:* X, @1 ]% T1 f" E) E* v
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'4 s# K/ P* C" N* o: j4 }
" I1 a* N( Y9 l& _0 C7 T" d
这个头文件内容如下:4 a! r7 A* t! Y' _$ R0 R5 Z- S
#ifndef QTCONCURRENT_RUNBASE_H
( H: X) k# ?; `* C. [#define QTCONCURRENT_RUNBASE_H$ B: k/ T- t4 @2 C& A: f
- _! Z+ l" C9 A# g j#include <QtCore/qglobal.h>
( P1 {4 W* p5 x( K+ }9 T7 F" C# e5 r5 c0 N+ a: ]4 \$ f* Y2 E" d
#ifndef QT_NO_CONCURRENT, V- S9 R4 ]0 C3 a
8 z/ D& c8 f' Q6 m: \. f! ^#include <QtCore/qfuture.h>
/ Q: H7 }# P: g* p% _2 C#include <QtCore/qrunnable.h>
/ Y" m. k6 j6 f7 ~1 N#include <QtCore/qthreadpool.h>' K* J% f4 x% V4 C/ }* P9 \
9 o% G& h- ~& `
QT_BEGIN_HEADER9 b. `' ?! l) @
QT_BEGIN_NAMESPACE" j( F/ N# Z9 e2 ?
' Y: {5 q+ K$ R: M/ n1 { I% J( m; v
QT_MODULE(Core)
* l8 G# G2 r/ q T. B, @3 i2 D9 \' K
#ifndef qdoc
0 x8 [8 W# C6 ]$ R+ c' p" ?7 E b: D6 c# V2 ?5 q; [
namespace QtConcurrent {
/ d4 Z# ^2 u: I) v# S% u! \! E! n B1 H# {6 g
template <typename T>
0 n- }: M* n, P1 `) `3 Ostruct SelectSpecialization
4 |+ q6 i/ N D/ i- Z9 Z8 t" S/ E* j{2 P' v. F/ j: ~4 Q. B+ p$ W8 p8 J
template <class Normal, class Void>
0 `6 s2 x& p ~& c! ` struct Type { typedef Normal type; };3 R. X) @$ F! b# p; k; Z3 t
};
+ X$ h+ `5 W" o$ W& `2 x! f# j2 z/ }- b
template <>
; Q- A( k) R! X& istruct SelectSpecialization<void>
. ?# r1 B9 M5 ~* t{
2 f& V& ^8 Y( r6 |( F9 x template <class Normal, class Void>8 F0 P% G* f9 H3 E. N
struct Type { typedef Void type; };- w! H$ w7 I, m$ [# a8 \+ M
};
. k2 A3 [2 I& d" k4 |
- f3 a% H3 d$ C& g2 ~template <typename T>
: ^. Q/ g4 Z8 Kclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable- h H: m7 d+ f7 K
{
+ X" e z0 S7 t& i- d9 t- p1 zpublic:( L q' N3 Z' Z% a; U& b( h
QFuture<T> start()
1 M) s3 Z" V t1 x* h9 C {
) B0 d1 Z1 A. q this->setRunnable(this);+ V9 d$ k0 ^$ s" F: C, s
this->reportStarted();
. U1 n2 G6 y" o6 Z& R) @, J% Z9 K QFuture<T> future = this->future();" b$ \2 c% I8 G
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);( r5 x( @! }! T
return future;
6 W3 ^% f' y% D, p }
_0 j, P& `! X" {# I& c- s1 y; U O6 J# b8 Q
void run() {}; X% U- t# ?0 w4 u# f
virtual void runFunctor() = 0;
k& L: P- N- r( D% g! ?};; ?8 S; H4 t8 c3 Q
6 J; h5 k9 R+ i1 w8 N
template <typename T>4 ], I+ i! k( b. z0 \- L
class RunFunctionTask : public RunFunctionTaskBase<T>
P' O7 B7 Q+ Q4 V{* Z9 ^$ u4 F& C4 t8 C$ b1 c
public:. Z6 e5 B# r( _9 q6 a; e% p
void run()
- G! W: h1 d* S, c o! n5 G+ ] {
( ^! N3 @' W: b- X g5 g if (this->isCanceled()) {
4 W7 [' J( d) J! { this->reportFinished();
6 Z+ N" P0 m, G+ s6 R( v3 } return;$ `# y. N# H/ R" I- a
}( v. p0 D. R+ Z# b, J5 o7 Y
this->runFunctor();* }- W0 `+ {1 h$ J7 j6 g$ ~
this->reportResult(result);: I0 M' m; d3 K$ K
this->reportFinished();
3 |+ H& u* v! e, N% y }
# C$ ~* G6 m W& n1 t+ g T result;+ K; ]3 l3 Q9 ?- x/ F3 I) v7 a' s0 T
};
+ K# [9 g& i2 x7 v& w3 f+ [7 J3 N6 K7 ]' g
template <>
( v8 S" r6 M: G8 Wclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
4 [" D0 K. {* C{; m. Q8 \2 J( V$ |, o; |
public:
' M5 i4 e- o1 ~# Y* | void run()
: v5 k" D c; l3 i {
, u5 {; B% l3 | ]' e if (this->isCanceled()) {
* {! s3 s# @, O# m0 L# P: W this->reportFinished();0 P: J4 t- A G3 A* a
return;
# \5 u! [$ z) S6 X: h }; c. Z4 y- q/ I' f& }/ _
this->runFunctor();- ]- X0 G. t' Y3 O; m {
this->reportFinished();
$ A- [! @4 D3 D) I% U2 n' ^8 \ }9 a6 f) n& S$ z) F# W1 Z) H9 |
};8 o; [7 \" T: }0 ^
, u S- I4 I$ A& Z
} //namespace QtConcurrent
3 B& X, H/ E: M0 N1 c
. R, P+ r4 W7 I: V- y& o- ^+ Y7 z#endif //qdoc0 Z2 \ X/ E& i- p/ D! w9 N
! K ]) B5 m5 N1 ?) I' X3 M9 W) }QT_END_NAMESPACE
5 A, W5 Q7 x4 f' d G! Z4 _1 nQT_END_HEADER1 N. j# z C( Y& _3 l6 p# z
- S* ]* c8 A A* |1 E' u/ T
#endif // QT_NO_CONCURRENT# {' T/ z7 F! H+ u
1 n: l# \7 {, d3 a6 w$ f
#endif1 [' ?" E# ^8 ^& d5 _. B# G
* Z3 K! m% n C) [2 i( j: O
|
|