|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
5 w2 S1 w6 [) Z% N% v- j/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
3 \$ M. {4 ~' v7 J. k% J9 U- ?6 K, _, b- W7 M
这个头文件内容如下:
9 P- _& v6 k5 l! `# G#ifndef QTCONCURRENT_RUNBASE_H
! ^. q4 O6 C2 _9 @6 E#define QTCONCURRENT_RUNBASE_H1 Y- r$ g4 _. }2 e8 T f
- P {7 a g0 ^6 n/ B6 g# \4 H
#include <QtCore/qglobal.h>, T& p) p+ ]: K; Q
4 \! r2 a& j2 X* V1 i
#ifndef QT_NO_CONCURRENT- ? g% \3 ?8 u! N# S, ~$ ?! _
. s! C! K) y# b8 h/ g; U! p#include <QtCore/qfuture.h>6 J2 R9 e1 \% ~
#include <QtCore/qrunnable.h>
; w7 j* L, m% {#include <QtCore/qthreadpool.h>6 z% p# w4 K+ Q: x) r) ~' _
2 p( g% h+ u" a. `7 u' J
QT_BEGIN_HEADER$ W1 d% u3 V. ^3 e. k% }* P, t2 g7 S
QT_BEGIN_NAMESPACE# j) ?5 B/ Q0 r+ r* X
& h ]% Q0 e6 [ ~# O7 `1 p* R/ pQT_MODULE(Core)' ]6 o$ [6 ?2 y! E$ h) i
3 P \' R* @6 m7 c* ^#ifndef qdoc/ s2 {3 ]2 }2 d3 V9 @
1 F7 j% {/ y$ Nnamespace QtConcurrent {
! |3 g" X# _/ x$ v6 a* h2 Y
e* n0 U# k) g! q& Ztemplate <typename T>
6 j. V S/ J& X0 R' istruct SelectSpecialization
8 T% d. V# x( J! e{
+ h$ t" M0 p( z. G) v3 g5 P template <class Normal, class Void>
( l1 ]4 w% |1 L9 |( j6 ?* I+ b struct Type { typedef Normal type; };
" a% u0 O% Z, p+ P: {. g: S2 O& X8 g};
1 T3 r4 B+ O; p9 h9 P7 k: n, ^) U8 _! ]# a a+ ]
template <>
0 O$ w- ^* M+ Zstruct SelectSpecialization<void>
6 a0 `$ q& ~( f" j* r{, S- u& m4 e2 k+ f
template <class Normal, class Void># V' P" o5 j' Q* r8 g5 e( T
struct Type { typedef Void type; };) Q5 F5 r9 J3 |* s/ Y, L2 v
};
/ f! P$ ~ c( Y( A' ?% [+ b
! F; d9 O7 l' X U! e4 L' ktemplate <typename T>9 l4 b7 S% ~$ x k
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
. J/ T3 Q" }+ u4 W{
! T2 F$ R- M, C; K5 tpublic:
( K& N" z1 r J# ^: w QFuture<T> start()
3 O- _. E# B. e( b- @& X) t { V+ U) P Q) b; M }- l6 h0 l
this->setRunnable(this);7 h) R9 c9 v. j; {8 p# y7 }
this->reportStarted();7 V3 w4 w6 W1 J* V- D
QFuture<T> future = this->future();
! v" Z7 o8 Z/ d7 B9 a* p QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
+ Z+ L& `% S: `' p return future;/ `* @5 o7 R0 R# X" i: l
}7 v" [6 G* H9 K( E$ y* L, W
( r1 j8 O" C$ T9 x" e+ C* q6 i5 i
void run() {}
5 y4 {# C, J9 @! N virtual void runFunctor() = 0;* u( C/ h2 M2 m# X
};; J- u" J1 B- S: S
9 C0 s4 M( N! C$ g) {
template <typename T>
; R+ m0 |' Z+ M5 ]8 M! L# vclass RunFunctionTask : public RunFunctionTaskBase<T>. J% |- c/ N; d( X
{# Z3 R* I( D& D
public:8 I6 f: E) e$ t+ D% j9 U/ N! y
void run(); S F8 ]6 e% ?# f5 c: i9 x Y
{
; C7 a4 V: Q% x; l0 I if (this->isCanceled()) {
! _; m% M' m* |5 t, l7 S this->reportFinished();9 p5 o2 z( R- Z/ `/ w
return;
, p9 h0 \* f0 b" I% |4 y }
6 P {2 N* u& J! [# a% c this->runFunctor();
& o* S) r% o3 B6 \9 y: ]( m, ` this->reportResult(result);7 p1 F3 H0 ^; l
this->reportFinished();- ?) D. G, }" q# d I$ R8 \
}
; w/ H/ v/ i7 Q) l: t- }+ Q T result;( c# w/ G1 B2 ]6 T e% B- \- U, M
};5 y" j+ F2 i! Q# g3 y$ s
& x( n: V' [: O6 Z8 Y2 m9 u! q' D
template <>
1 G* M0 F# l7 ~, N" Z4 a! r8 Y, cclass RunFunctionTask<void> : public RunFunctionTaskBase<void>+ X* _% D" b+ g3 l6 J# D
{- w, @, A- N; a
public:
, H% }, H) j8 u+ g void run()
# @, ?2 }' N0 z, B2 B# _1 f {
) ?: J" T6 E/ P" }4 V if (this->isCanceled()) {
3 y8 {' }) u% v this->reportFinished();3 q) j4 Q$ H/ y% u8 F3 k" o4 o- {
return;
( Z6 d. h% k4 p, T; @+ g2 b }' |( F) f8 K2 |9 z0 U0 q, C% w
this->runFunctor();
7 [! n4 e$ e% l8 B) `* O+ | J. D this->reportFinished();
8 F3 l4 ]6 X% R) p) } }
6 ^. Z8 g* d2 T ~, U+ B};$ e% Z( h% x' v
# M, D' ~- P5 D, F" u* Q} //namespace QtConcurrent
8 H X8 ?) D" |) k4 ?! O5 n
' t- L0 t$ v' P' O% y#endif //qdoc# w) O1 a0 S( O
$ R; Y j6 g$ N9 w4 gQT_END_NAMESPACE: c& e( ^0 Y; n% Y; _3 S' _! ?2 W
QT_END_HEADER
$ \6 d# F( N; G. |8 ^0 e2 @
$ G% V- P1 |* V% F9 y#endif // QT_NO_CONCURRENT
1 N9 L }, z' Q* P/ }- H) a
7 C! Z9 S( N% b' s. k8 O4 ?/ c#endif, v9 B$ Z! L& a, m2 ^. V5 ?2 T
: S1 N4 Z! ^) o! r# ?# [ |
|