|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
: |1 q1 s& f, ]9 J4 L# ?/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
. s1 q' H& O* r8 J" u1 f5 ]5 t. ]6 ^% b, q2 j# @! n) R
这个头文件内容如下:
8 m) z9 W U. A. t#ifndef QTCONCURRENT_RUNBASE_H2 L& ?; a$ c! q
#define QTCONCURRENT_RUNBASE_H
" ^! m5 a/ p) A* S2 M n. t6 H9 D- O' ?
#include <QtCore/qglobal.h>
: p# h1 W% l. Y# ?" y0 P8 n
+ |: Q* Q+ }* r( U- ^( }+ n/ V#ifndef QT_NO_CONCURRENT% E* V9 ?3 c, c5 q6 Y" r
l4 l5 I& e$ m4 N
#include <QtCore/qfuture.h>
{0 b* l5 Q9 N l- W4 H#include <QtCore/qrunnable.h>
/ ?$ r- @: I# @7 _% ~#include <QtCore/qthreadpool.h>- G2 T5 {7 I2 D. }6 ]
4 I5 H9 S9 r9 f0 F" W! t& _# NQT_BEGIN_HEADER
( e/ g4 b) u. i$ e2 x! v8 OQT_BEGIN_NAMESPACE
S9 v* Z" G; J0 g# h2 b! P3 U( u* E) E; n7 ~$ N" @( S2 {
QT_MODULE(Core)
, [$ W! |$ [- b( F6 e) G! g2 {
+ i5 I+ Q. \9 [7 J2 B. F- C9 e( z#ifndef qdoc
' g- i) U1 [" t1 `( B/ a% @5 `: D6 v: l! e* `
namespace QtConcurrent {
2 c, D* w6 @% t; `' A$ X
+ f. C V( Z: ?1 v: X1 E4 E1 ?template <typename T>+ n! V) [* x; M9 W
struct SelectSpecialization
1 w/ V# }* d8 n6 {{& A" q8 c% W' ]$ E
template <class Normal, class Void>
0 w! @) `$ R- L p6 K/ D struct Type { typedef Normal type; };
& x2 |( P# E1 d a};) T/ u( o! Y' Y) ^
3 O _/ I2 ]* k- A3 q/ y' S& B, g- P
template <>
) P) i% t W$ ~6 Z5 d9 v- Qstruct SelectSpecialization<void>1 }' h2 i& Q5 I9 E
{: f! i( A$ `$ y4 M g# k z
template <class Normal, class Void>2 p9 K6 V, C* Z- R1 K: i2 Y* }0 |
struct Type { typedef Void type; };
3 `. y/ E/ `; G};
% a- K: J' a' T# n. R" `0 i' \7 c5 }9 } l6 O
template <typename T>( t# q4 w* d# N( b: a; o
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
" R1 N$ d* h! B{7 [( X+ F' U9 N, Q
public:* N7 ^6 d* O' d' e# _
QFuture<T> start()* m* T. q: n' f! o3 X, E) z- Q
{
' N: O1 C. _: t6 T; g this->setRunnable(this);
+ V- t. u, n7 [0 A this->reportStarted();
9 H, p3 e+ g) }# m0 G$ Y QFuture<T> future = this->future();
2 g! m1 n# |& W$ h+ t% p5 w QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);) u9 [" v5 g: w4 a* E2 Q+ J
return future;
& Y: @* M6 n. j8 X& H) Q1 A } M& Y1 C4 ^4 ~% a
/ T, G+ L K/ r' p \: k, y
void run() {}, H8 w$ ]0 n# q. o
virtual void runFunctor() = 0;% @0 U) l: F) \
};
3 i ]4 D1 U, K' n
0 \8 v: Q6 A" B7 e0 qtemplate <typename T>
E$ h; L% u) N& R$ b% yclass RunFunctionTask : public RunFunctionTaskBase<T>- o8 R6 q8 v# {7 u! }$ o; Q
{- @! z/ T2 y5 C$ b$ Y2 R! M
public:" f4 A: j9 n( ?
void run()& P' d" @# R' v0 E
{
$ ~! q' w+ j! k- h+ H9 j if (this->isCanceled()) {: z% g! y Y' D3 n. R/ _6 g
this->reportFinished();' }- W- r! ]: p" k$ g) B
return;: C" Z8 f" }6 O( U7 S) C
}; r+ ^3 `( O. ?( u+ \# c: H* q v
this->runFunctor();9 g( D) O) s1 V% ]8 A
this->reportResult(result);9 j% J- p5 w1 W6 i
this->reportFinished();
8 ?: |) ~- g& J# l6 K8 d }
0 z8 o1 _( G3 N" H( A0 L6 ]9 Y T result;
1 j" ? o; N4 F0 L* l7 {1 B};
# l/ s! G8 F8 n
& b$ G5 e. B; e) U E4 G( xtemplate <>
( P0 b0 \4 c, K! l4 W, Sclass RunFunctionTask<void> : public RunFunctionTaskBase<void># g/ A& ~ d m* s
{
& L9 Q$ ^* d" _/ q3 npublic:$ s3 A7 ^( c* E, c; w
void run()
6 x1 A0 A$ U; q; F {. @' q- M4 p/ v! {- A$ K
if (this->isCanceled()) {3 x8 K3 W6 T8 k5 H# l x
this->reportFinished();
+ \ c# z* v% C# n2 ?9 n5 ^/ O6 J return;) t( i& Z% n* B8 { R
}
! Z# ^1 }7 z# ` this->runFunctor();9 c! i2 B7 Q) E# X, }
this->reportFinished();
; k2 f% t( o% C' x, a& D s }+ x6 _ X+ K) N+ e- T% {" ^
};$ A: A1 ^7 k% L' k3 e8 T
$ O8 N# ?% f2 ]/ u/ {} //namespace QtConcurrent& h4 x; I) z H7 ^0 W$ Y% X
0 N2 I7 Z. r0 U& S5 E& B
#endif //qdoc
5 a; M% N% e. a, M
# _1 T* s9 ?3 A- D( zQT_END_NAMESPACE2 a# \- G+ }3 t0 ~& U
QT_END_HEADER0 i4 C( f- B2 G# x
9 w: V0 C1 r3 w5 Q5 F- }: Q8 R6 V
#endif // QT_NO_CONCURRENT
; j9 \1 e1 U5 z) ]3 |$ u5 X1 P7 W
: D, k- ^1 l. u6 U `! ` `# Z#endif: d. B: ^- i6 B# S1 M/ V5 W
* E3 ~6 \2 k, z; b
|
|