|
|
我对syslink进行交叉编译到arm,但是出现如下错误:9 U1 ]$ ^& d$ B0 I8 R
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'- t6 H9 H) p6 G7 O l) M
1 W/ C* Y& i, c& W
这个头文件内容如下:
8 M k4 q; F" J5 g#ifndef QTCONCURRENT_RUNBASE_H; {% [9 l4 I4 X% l1 L9 X0 I
#define QTCONCURRENT_RUNBASE_H
: ~9 V# F* X! [; V2 e: J; I8 R9 k& c: L% S- K& @5 ~" h
#include <QtCore/qglobal.h>& @5 B: `2 d8 N, h7 c- g% B, _
# s' Z* Q3 a3 g- h" n3 |1 t8 [
#ifndef QT_NO_CONCURRENT }: q! V4 ?/ p4 a; J2 x9 X7 z$ u
1 t8 t5 n1 z, w#include <QtCore/qfuture.h>
, u$ _$ o' L' d- R7 M; r8 D#include <QtCore/qrunnable.h>
. b$ X* C6 J3 ^- D9 W- u2 o#include <QtCore/qthreadpool.h>
. G& J& C9 m+ |3 v% A! w; t! }4 D
9 F9 z. M$ W4 `, E: F* XQT_BEGIN_HEADER8 D f; k6 F* A5 d, n# q& ]
QT_BEGIN_NAMESPACE
: I" r" L+ H9 ~ D% g0 o. q. j8 N; a. V2 c' _% |) }$ G
QT_MODULE(Core)
9 q9 H, E h! Z; v' d2 U* B$ p
$ `( u1 |2 H) i: D#ifndef qdoc
. T+ J3 M4 U( b
T/ g5 ?( Y# _& h4 N0 ?# m+ Unamespace QtConcurrent {
! e. _! K6 |; T$ x! C
. ^) H7 T# Q& F( ?; Stemplate <typename T>$ q# D) S- O: a) x' V+ X) ^
struct SelectSpecialization
6 h1 T7 A2 A& }{
, n/ j! I5 E- p$ U; Q+ T template <class Normal, class Void>3 e; ~( R4 \% x5 u! W2 E
struct Type { typedef Normal type; };0 M+ E1 j+ _; M% [5 q$ Z5 ]9 I
};
0 G7 G) Y7 M" L
0 [- z$ G0 Z- c0 a {9 Z! a: utemplate <>
1 o/ r3 ^; k) c( lstruct SelectSpecialization<void>
; V# X) M- [) \, ]8 f% g{
4 [; V, K* g$ m' Q/ z6 D) @$ w template <class Normal, class Void>; M( h4 T5 B7 l" [
struct Type { typedef Void type; };+ G0 P b) q5 n, G
};
q; v4 z& u) F$ E: ?8 t2 |2 r5 \$ a4 ?: M* n5 U& v
template <typename T>7 k" q6 O$ g! j
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable0 C: y7 V$ { e/ ]1 F5 ?
{
* c9 ]% R7 q5 }1 d5 [public:2 T* u! y/ u/ P6 b4 e
QFuture<T> start()
3 w1 d+ T$ U( ] {
) e, G& l) j; {6 h$ M1 C$ x7 g this->setRunnable(this);* [' ~$ I9 Z4 Y( D
this->reportStarted();+ q% n$ }9 h$ q' V& F! r
QFuture<T> future = this->future();
2 {5 s) Y4 g2 T/ U) P! F( f QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
3 V$ q( ?. A4 W0 @+ P+ E" k return future;# u: j1 y, M, {# t1 v
}1 V( g4 @2 T: w$ A) h4 |, a
. @8 {3 h8 k$ G9 L. m
void run() {}6 S1 }2 I- t1 D, T- r# R+ Y+ q
virtual void runFunctor() = 0;
, k4 {1 r; ^3 D$ a9 w5 @};
$ C/ ~: x. H, C" u4 p1 P
& X' \0 M3 B6 X* [! wtemplate <typename T> T2 _ J# f. l( j
class RunFunctionTask : public RunFunctionTaskBase<T>: |% i0 w. K1 G8 r/ Q7 g
{7 z! Q4 m, L9 L t
public:0 [3 X3 @' e6 {# M- T
void run()
8 C0 n& R& C* l6 g3 y {3 c9 o6 P; p5 F# r. G
if (this->isCanceled()) {% t3 e( A$ [& c: y$ p. r
this->reportFinished();
. v, w) F$ `% ~2 L9 v6 k7 x return;
' P. A! B: z" a }- _. h. m7 q7 Q9 P3 q
this->runFunctor();
) i9 Y4 R, O" l) O# e this->reportResult(result);5 t% B' [' a8 |. F5 q
this->reportFinished();8 d: Q( w4 B2 A8 b
}/ `8 A6 c4 X" M
T result;
- F6 l9 s+ `% Q, Y* g" ?};
& P% b8 E( f$ E. ~8 S( T+ r) a3 p
" Q/ S9 u5 E8 A4 k( S- e3 W4 B2 utemplate <>
! g6 l. Z1 `/ k8 O R, ]% y2 S# @class RunFunctionTask<void> : public RunFunctionTaskBase<void>0 S0 d, B; N) | e. P
{
* W$ n0 i" W% H# O% Z+ {public:
7 v' D6 r2 h, |+ | void run()' R8 p2 ]# {4 a9 w9 F+ c$ n
{
) W# ~8 l' I5 K1 y9 `0 E' s if (this->isCanceled()) {
# @6 z: Q2 `% Q4 R* \$ C this->reportFinished();
; K+ w4 M& t8 k7 _8 m return; f- b6 S j6 @1 K: ?3 {
}
) v& Y; N! a9 C7 z l+ U4 [* r i this->runFunctor();5 ^% a- b5 b( B5 U( `' T
this->reportFinished();
2 x0 ~, v: ^2 o) @ }
, ]5 t. N+ Q+ H2 { X};9 `: i' f4 S. \; ]7 c, _! A
3 i$ S4 ^' C' S) _6 m
} //namespace QtConcurrent
+ n( j) H C0 ~$ d+ y6 Z6 I9 |7 T7 D3 Z5 I0 |
#endif //qdoc! @: m, A9 M4 `* q% R
. r# L& B/ q5 n: |0 |. e; d3 {QT_END_NAMESPACE& F* A& ]. M/ a7 y3 m; m5 z
QT_END_HEADER
% e7 b" U( }, \# w7 ^+ H2 u! a8 |3 J9 J" S9 s
#endif // QT_NO_CONCURRENT- G1 L0 c, e6 p! B- p
' S$ v( U+ ?5 ^: y#endif
* y! t- S" `7 ]) N0 Y7 Y4 v4 k" ~8 Q* ~4 L
|
|