|
|
我对syslink进行交叉编译到arm,但是出现如下错误:5 }; Q( ]% u$ |: U3 p; p
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'8 _: K7 l& H! t& u# \$ s: S7 T% m( P
+ V6 h* w6 t8 o7 H4 g2 J7 M这个头文件内容如下:
% e& i: H. U' e- g- w#ifndef QTCONCURRENT_RUNBASE_H. y) d' J, l/ I$ W4 ]
#define QTCONCURRENT_RUNBASE_H: G+ B2 h0 ^6 g$ h% N! ^& q" ^' n
8 Z! d- z% u, M( S+ m#include <QtCore/qglobal.h>
6 U" Q! [5 Z% G/ K
6 i- |; f. M Z: ~: r. {#ifndef QT_NO_CONCURRENT
# W- \ C. |8 _0 q2 s
1 f0 A* [ K7 b#include <QtCore/qfuture.h>
" ]- N0 L) Z- l1 J$ ~#include <QtCore/qrunnable.h>' G7 n+ `; x* c3 w8 B7 V8 B U6 f
#include <QtCore/qthreadpool.h>
% ]* q3 g& ^ v: E# D; w$ e9 D: g: C$ i& G8 K D- Q: \2 m8 d C8 F
QT_BEGIN_HEADER
2 m$ K, r6 ]2 H+ |QT_BEGIN_NAMESPACE
e7 `8 }2 V1 I# O4 c E, O' Y
% G" H5 ]3 i1 N- G* m2 JQT_MODULE(Core)
t% Q8 y8 D9 r% Z2 v
, d* F0 ?. t. {1 P9 H3 R$ ]$ M#ifndef qdoc. g$ |( @! Z; b, [: A
9 c: O9 |& ?* u4 ]8 c
namespace QtConcurrent {0 J* _" `0 `% O! l: t/ d$ l
* N( e4 M: u" C% Vtemplate <typename T>. g& A* Q0 Z' w; t4 P0 L: [. [
struct SelectSpecialization
N: i/ B' k$ n1 \& [2 s{! m. ?0 O5 D. f, l7 I2 Y ?( ^
template <class Normal, class Void>
/ r! ]5 s5 }6 Q$ b1 p struct Type { typedef Normal type; };
8 p; \7 y; R$ r};
8 k( j8 }% C% N" R/ K- o6 G6 M) ~2 a4 a4 D+ ]4 _% Y
template <>) E9 A4 F' W: ?: J. d" P+ H
struct SelectSpecialization<void>
6 C9 i B4 C7 S" O, @/ |: ?1 m{6 l5 w8 i7 b" C1 ^! D
template <class Normal, class Void>
5 d! [4 L5 t* h5 i9 V( L# a' t struct Type { typedef Void type; };; ?3 c% d. C) i$ _) [- Z
};& X- E8 q. j) a* P- V2 o4 b
7 z& E: t+ N' U1 t+ a4 y5 v. K Xtemplate <typename T># N; a% a* b5 n1 u& s8 a
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable; y# q3 J, H6 d+ y$ m! r
{
! u0 T0 X# n! v/ B9 D) N0 v; |public:# n8 {2 a- u( I, W. L
QFuture<T> start()* p9 A, \- C: u4 E6 s- }
{
/ n8 I5 f$ y. D this->setRunnable(this);/ W# g3 [4 g6 Y
this->reportStarted();! M, W- _$ k( K! j) Y) Z3 d- v
QFuture<T> future = this->future();
' U) A) Z. n9 {: x8 ]$ a6 h# x QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
6 f+ f2 B7 Z# l6 C) v return future;; d" m; |( n* V: O6 d# F7 H
}
) ? v' d8 ~, Q; G& Z4 L/ e: |5 v7 ]- M# g1 G0 s
void run() {}
7 Q" b8 X0 b0 r5 e/ {" @: | virtual void runFunctor() = 0;8 J7 ]; E6 m9 x- p& z! Q
};) T1 H, Z6 U# C8 _6 w
- F/ ^/ z9 n8 g4 E* l _template <typename T>& J. o, X: Z# R# `! J# O, t/ h
class RunFunctionTask : public RunFunctionTaskBase<T>
/ y2 `' N1 a; o# Z5 J{ o4 l* f5 f) z# o
public:2 i3 g: r9 |: M+ m9 f
void run()
9 O+ X, c4 E8 h1 R2 s8 M2 l {
& v/ Z% C9 X+ R$ \5 g; n1 S if (this->isCanceled()) {
8 L/ c* H/ g0 L4 x, R this->reportFinished();
' E6 w3 k6 A: X; _ return;, }0 W% C& Y$ W; a' [3 i- B; R
}5 Y3 W6 Y; F! n) y' O8 W* G
this->runFunctor();% F. F; {! c0 \8 f4 w$ R
this->reportResult(result);
3 A" n4 S7 E/ w# W5 [5 Y this->reportFinished();
. t* B' P7 Q9 O }2 G/ @6 B; N4 V5 g1 J
T result;1 [7 q) d, E; y/ q7 \/ I5 N
};
) _- o5 M" G! u& ^8 w( H
9 J$ r5 ^: s8 f! T) Ctemplate <>! z) L+ x" M; U3 R
class RunFunctionTask<void> : public RunFunctionTaskBase<void>. I' U5 J9 @- i$ w& x
{
# ~: m" H( ?5 \# B7 c9 zpublic:" z6 t* F' p+ L: O/ b
void run()
0 q% Y L$ w4 L0 p; B {
4 K! m* S% O8 C. i8 Z, O6 E7 { if (this->isCanceled()) {
& _* V5 a0 t% ^4 z0 `& ^ v } this->reportFinished();
5 f/ d+ u% I& [3 U+ p) U8 H2 f return;
6 V# {2 e" f3 o, x+ z0 v }; w8 ~# A2 D- `" T& r' \
this->runFunctor();( N- R% L; h2 W* b- _0 q% V
this->reportFinished();: m. e, {4 b, E5 [3 D
}
+ A+ C/ h0 w$ q) D};' c+ r$ S- c `4 c* V
; c: o1 t( _7 D} //namespace QtConcurrent
5 \9 n1 m& @, D" W
6 c6 }$ t6 d5 I' U6 i7 a#endif //qdoc2 ]6 L2 N# F7 n, {
/ f9 d# v7 w! @1 h, z8 qQT_END_NAMESPACE
$ h- m* Q( R7 u. _1 y" r* }QT_END_HEADER
' |. `1 Y4 R0 C+ Q" U' x, S! t; `) G& b% J! L7 N& F! i- Q, ^ J2 L, u
#endif // QT_NO_CONCURRENT7 q( [. h2 B" D+ e- ]
5 [0 p% A: Y$ D _% N4 C+ }3 C% }, l
#endif: U. n1 i$ n6 `! o5 ]- L
S) |4 h/ e5 W1 N1 Y: t8 L
|
|