|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
4 [3 v& L1 t- X( G; j# \4 B/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'7 \/ [# m# `: f& Q' }* }% ?) y
/ C8 p2 R! Y8 F) P) \ q
这个头文件内容如下:" V5 a3 e) ~. Q" C
#ifndef QTCONCURRENT_RUNBASE_H
+ P! [7 `% D0 \$ P$ U' z#define QTCONCURRENT_RUNBASE_H% d; B/ g9 F' V# ^+ ]
+ c& n! r6 Z& e8 W$ d- v6 h
#include <QtCore/qglobal.h>& x. e- G) h7 e- T
- l% w$ ^2 W- W* O; t' T
#ifndef QT_NO_CONCURRENT
- c2 T% T: i9 o( }( _* z) }, [4 A2 y% d6 r
#include <QtCore/qfuture.h>; U# [6 E7 a% ~
#include <QtCore/qrunnable.h>
" X; [+ x2 B' P. ?8 p#include <QtCore/qthreadpool.h>
; ]: r, b' Q1 \" K. u
+ {7 y @8 `" H% n' \& d" |QT_BEGIN_HEADER
F8 R8 Q+ D8 O0 p; v) E0 `* RQT_BEGIN_NAMESPACE6 ^+ N- E/ t3 g! J% M1 ?+ a
2 F% X/ b* z9 o, x: y+ WQT_MODULE(Core)
A$ o6 z# d& Y0 j7 h. {& f# S
- C+ G% R( q' b7 o* q, Q#ifndef qdoc# j" s3 s4 x3 B' h* c& r
& [* O8 g/ h8 E3 R) Q# ?
namespace QtConcurrent {" Z( b* N, Q p/ ^9 I) Y" A9 J" A
* N6 o: W! f, ?' v# ~template <typename T>
0 }! g- d# U9 e$ r6 f: p+ Kstruct SelectSpecialization
. J+ j) i8 n- l2 M. r5 i R& r( r{
, M$ x! L6 ?, c/ r# y template <class Normal, class Void>
4 f& Z( a& H# W" f0 w struct Type { typedef Normal type; };
: x1 b) S, p O' X4 g- F( r}; T, {, _* ] J3 O8 j/ K$ i$ R
/ W f" Z9 Q; K* g* ptemplate <>
8 G6 j3 o. a1 g; S( Cstruct SelectSpecialization<void>. S; h4 }1 v& J8 d
{
4 O. \# }( R+ z% g+ O( i template <class Normal, class Void>3 r X/ J! r* o% P: O& B1 N% c
struct Type { typedef Void type; };& H1 u3 e8 l5 @) v: [* L
};5 E: A) I, |4 Z9 j0 {
# v# H# K6 u$ r& R( e0 L& ftemplate <typename T>2 L% Q [/ t( ~0 n+ `
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
6 r9 {, w. \' F5 r9 O6 E$ ^{
+ c3 d! I4 p" P6 R; G) s$ y, B+ k" Spublic:
9 J* C2 h. `0 q5 T# g3 A& J QFuture<T> start()
" K: }# h2 ~4 k( I+ V! e/ q {
' q5 L+ i! Z3 C this->setRunnable(this);
b- l: z: D# U* h1 P$ G this->reportStarted();' j, T& x1 c1 q; T. J3 j! [
QFuture<T> future = this->future();6 q9 k( U( R0 V+ a& v, l
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);5 d8 L: d) v3 b5 O7 l: Y
return future;2 [( m; k# Z3 q; `/ o
}
/ C9 x, o( n' V; j' a/ d9 q
1 F% T( k) Z- o% |: @# d5 g void run() {}
+ [7 S$ J- x3 a7 B P virtual void runFunctor() = 0;8 B( o: y/ ]& Q# w
};' W, @" v. n1 n( C- C9 U
6 N ^/ r' e3 [
template <typename T>/ C% D3 E8 n& `- z9 X; u
class RunFunctionTask : public RunFunctionTaskBase<T>
. w8 s- H" \# i{
; r2 L2 j/ Q) X' X( Z7 G1 rpublic:- { [/ f1 T! [" s# A
void run()
: O$ Y" @& h2 D! I {/ A8 Q% \$ o0 I1 f
if (this->isCanceled()) {
* g9 k, M6 J+ z3 J5 U) V, e this->reportFinished();
$ `* L, R; s" {4 ? return;7 ~& T N& \5 _, |# ^( ~/ v
}
0 r3 J8 t: s8 k2 d" U this->runFunctor();3 l s8 B' D% w: j' G2 h# P
this->reportResult(result);! q) ~# E) N& f
this->reportFinished();
8 c, @. I# y6 V }: M& n$ ?; k1 Z
T result;! Y& h+ [" [/ V% J
};
2 F+ I- }6 a) R3 ~) l& c, u: E- N# w' E) y) i
template <>8 T4 s" k/ m* r( j1 l/ l) f
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
, v- n" o( p- l3 X2 x{
# u! Z# K0 L1 q0 wpublic:
7 B/ M/ l4 B; M: C8 R5 m4 G# V void run()
" c' v5 z2 P4 V2 k2 W2 v; m {
8 I8 ?7 a! p* h# } if (this->isCanceled()) {
; X, O2 w; _8 g) g/ u1 P+ N5 L this->reportFinished();2 E3 {( l+ ?" O7 R
return;0 K2 Z" f6 t! |8 G: u
}4 w H4 P9 `1 p# W
this->runFunctor();
! o9 ]1 l* c4 l e this->reportFinished();
. |" Y" q0 V) A }$ Q9 e3 r0 D# c$ r4 m [, I- O
};
! @7 Q; `7 O b/ h" ?- C: Y" k+ o5 N" n) c9 y) ?) ]# I
} //namespace QtConcurrent
* G- ^' F' K$ W) I% m) R# j' g
* V" U2 y' w# L3 H1 s' ]+ ]5 y, y#endif //qdoc8 s- d& ?) @4 f/ o; q
. C9 s3 M6 N6 e, @, X; j/ P( A
QT_END_NAMESPACE8 A2 A! j% q; V
QT_END_HEADER
; Y6 w$ h2 p9 V) B9 i6 \! [/ A K J, a5 r$ P2 w
#endif // QT_NO_CONCURRENT+ v; P& ^9 ]: s2 [% {
8 k& b6 w; u5 k s& y
#endif
% I+ ~/ F: g8 y# j2 e( `' o' W* s B. S/ q& T
|
|