|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
: S) b6 B$ k7 C$ S+ S! t3 P. C0 b' c/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
& s+ s$ t J) Y4 |8 f# r# F# u: T8 X( N& i- t9 m
这个头文件内容如下:
/ Z& M$ p+ m' Q! x, `! ]#ifndef QTCONCURRENT_RUNBASE_H* B1 B- J: u- x6 H; I* n
#define QTCONCURRENT_RUNBASE_H7 @$ [1 L9 h% E) m: E
$ |; m; i0 S: ]% A1 w0 a#include <QtCore/qglobal.h>
) C) s$ F8 S5 s- I. L, G4 C: h/ u- m3 ~3 X7 T
#ifndef QT_NO_CONCURRENT# V! Y U4 P" g; b
( O- K8 B& p/ {7 t* b5 G$ h# j. k#include <QtCore/qfuture.h>: u7 s$ A- D; Z% a+ y6 T9 M
#include <QtCore/qrunnable.h>
4 T0 m) I* Z" c. c' Q3 V; g6 L+ V#include <QtCore/qthreadpool.h>
4 G% w3 L/ w/ _; q5 Q
5 ]0 T% `! c$ M, I& fQT_BEGIN_HEADER6 R2 \! T$ z, C) k
QT_BEGIN_NAMESPACE
6 K9 }( q0 B" j& j
5 q6 B5 {8 g. _2 q" ZQT_MODULE(Core)! q" O& v3 W* M8 X$ D+ U2 s
2 q2 ?) o% k1 o5 g' v; ]#ifndef qdoc- V9 x2 y! _; _2 S- Z/ o' o5 [9 o
$ h# p% @7 {2 A }. B! y8 a" s
namespace QtConcurrent {/ {" `/ U$ h$ v( i
6 A6 d- f6 r2 Z' s" |& M
template <typename T>/ ~3 h) a- I8 q# ]1 \! j2 m8 \
struct SelectSpecialization
) \( D: s9 L8 \1 h( R9 h3 \ R5 i{. T3 }5 N6 U, P9 |2 W
template <class Normal, class Void>
0 M# J% y4 z5 B& G# d4 ^ struct Type { typedef Normal type; };
7 Y' S6 K! ^) k, D};: o7 H# i& w# L. C3 d
9 r& A+ E5 N4 \: ?+ x) ytemplate <>( ~' h' n. A/ k7 @# a
struct SelectSpecialization<void>2 Q0 W" S. C$ f8 |4 A
{
: U3 j$ j& {" G x template <class Normal, class Void>
5 v: ]( V/ ]5 }) F# i. S# g- W struct Type { typedef Void type; };
" l0 S- {& p# W! d4 s1 z};
- y/ H5 I. T( X- ~/ J* f. _$ O8 T3 R. Z8 D. M4 M) w- ~; W+ M
template <typename T>- d7 ` O5 O4 z6 h' L+ P5 J
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable* R9 \ R: }7 u9 B) G
{
' v( l, k$ j/ L, q' G2 A! hpublic:
- r) S1 c& m. B' X4 ^ QFuture<T> start()* ~! {; y. M8 u, x% v
{
8 }3 X, H. N+ ?* v this->setRunnable(this);2 N6 d1 j5 O Q8 m N7 [
this->reportStarted();
( z! [- n: A+ m# A2 ` QFuture<T> future = this->future(); _0 t/ ?! V) Y. k6 O
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
! q8 X) C$ _( u+ P3 {# C# j return future;
( F; t( b1 K1 b2 z2 P0 O }
; _1 `7 B& O" k7 f" ?
2 Q$ ? A/ n8 L5 z void run() {}
8 b# v- }' t" U: P" N virtual void runFunctor() = 0;
3 U, B H t- L8 i. I- j2 [};
6 j* s0 v+ p- m) Q) R+ w5 w! h4 D
1 D. O2 W7 J; u+ w2 `* P% P' qtemplate <typename T>
# c, y; W" f. M. t" Rclass RunFunctionTask : public RunFunctionTaskBase<T>
* y% C4 e* k- q/ b2 B3 b- f0 g{ N/ T7 c: y1 ?. @
public:' P6 p k5 g% e& T* [- B" {+ ]
void run()( f! D8 s1 ^7 c' e5 W* e) }. O! n- H; |
{) E" L9 A# K9 Z, b( x+ @
if (this->isCanceled()) {/ g, o3 ^ I- y# H, Z
this->reportFinished();3 K3 o+ E2 |0 c/ D! J- S3 S* l- ^
return;6 p7 O2 ?6 i7 n
}. o( a" Q* {, `: z2 v
this->runFunctor();; \" {* r% O6 s- |
this->reportResult(result);; v( R3 m2 ?1 j9 h) h' W. M
this->reportFinished();
2 n5 N' ^4 n) U# k3 d }
, n& |- Y( V3 S T result;
; k) j2 ~0 o8 ^( p# [# P0 V};1 A& D- c+ c% ]3 N
2 U" j# x5 t, H3 [) t
template <>
8 }9 b" T; j$ Nclass RunFunctionTask<void> : public RunFunctionTaskBase<void>1 |. s# p$ C/ E2 I& T) e
{
% ~! ?7 m( r" c8 }public:) s' j+ A( p3 J* y7 L$ F
void run()
; b0 G6 M. P3 ^/ V/ {' ^1 m& \ {: S. Q+ q: U( ~2 ~# s4 R
if (this->isCanceled()) {
3 v! X p, Q7 ]6 a& b' Y1 E& }: G this->reportFinished();
; M2 \1 a4 D0 U& t return;7 U: h; e9 Y3 P* C4 z8 i% i
}5 d- L# J6 u7 u; x
this->runFunctor();
# ^5 B1 _. J$ d9 T this->reportFinished();1 z' o; A$ `6 ?6 t. J4 S6 d3 }* ?
}6 w- z: A( f4 K
};
- |6 n4 f' I0 T: ^3 S( L6 N9 t
} //namespace QtConcurrent
' Y+ Z, ?7 f' }. ~ [
! @2 b/ U+ `7 X. t% a" _6 w0 J/ I#endif //qdoc4 s, h- K% J( G% ^. w0 f# u
" ]2 v; P& j- I( D+ fQT_END_NAMESPACE/ x) C, f Q7 i( G1 Y
QT_END_HEADER; U' F6 m8 @7 W' I" `5 l
& ?) `$ ?8 r' U% }8 @
#endif // QT_NO_CONCURRENT: H! U: W8 [" ~4 l
P2 d/ O" n( d7 h
#endif* S0 t+ o5 ]9 E+ X! B# e
; E2 a6 n5 n) d, l* C
|
|