|
|
我对syslink进行交叉编译到arm,但是出现如下错误:; y3 [7 V6 U9 R8 z. x2 f3 G4 U# m
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter': ?( |( i; g: Z, K2 r
* u6 ~; Y- }( X* V2 d这个头文件内容如下:
0 I& _: o' `2 r) m" Y9 k: D#ifndef QTCONCURRENT_RUNBASE_H9 w. v4 d+ h; n# `4 l
#define QTCONCURRENT_RUNBASE_H
! z7 u- a- M- B" Q2 W# k; b
) Q9 `( \1 i4 b5 \0 o% E#include <QtCore/qglobal.h>
/ }- w! A z4 _8 T# y5 G; N
+ {4 _- N6 q- r# Q- J& F#ifndef QT_NO_CONCURRENT
1 B/ F$ `% }$ e1 A* `9 u n' ^
9 W) C0 `5 m$ B3 l$ {#include <QtCore/qfuture.h>
6 f' ]- P% X6 \0 s$ x#include <QtCore/qrunnable.h>
2 S2 Q D3 I7 `- w# K$ y' }#include <QtCore/qthreadpool.h>9 {7 L5 V& q- \! u' O9 u4 v
- E' L, {$ V8 l
QT_BEGIN_HEADER
8 ~3 c" {# ^9 \) {QT_BEGIN_NAMESPACE2 f7 Y; v. o X. p9 ^
# e) I4 Z6 p; R* o% C
QT_MODULE(Core)/ v8 m9 ^: C3 G
9 l1 e+ M3 M- k6 p, M) }; L
#ifndef qdoc. ]* V+ {$ P" S
( P g: ~5 C- M, v6 Inamespace QtConcurrent {
& o, G) Y3 [5 t! H" F7 R9 Q
/ {1 Y" Q' o6 t2 W* Gtemplate <typename T>
( M% h2 W Y' F) }4 z# q0 bstruct SelectSpecialization
, _* e: x3 d: d! v% \{* o; l# w! E9 m0 M% q! t
template <class Normal, class Void>9 h+ h, I( {# R
struct Type { typedef Normal type; };
& l. y9 ^! r0 X) H0 y! f};1 `% f; A5 N, a# v2 k2 }7 ] N5 u% h
: \5 B- Z0 M% _/ K/ F2 A. F( h# Ftemplate <>& B* K! I. X% U) J& g( f/ S7 p
struct SelectSpecialization<void>: m; ~5 B' z: X: c
{
8 P+ W8 {( |& ^# U+ G& M# M1 B template <class Normal, class Void>
: n+ ^7 t& b0 S( S( m- t% L3 ] struct Type { typedef Void type; };
0 D9 c9 i: Z3 o};
1 y) a! j; o4 n, b8 n: w9 ^- X. M2 a1 f9 B% H9 M1 [. z' H8 Q
template <typename T>: L8 J0 a# n5 z* M
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
- [$ O3 s. M, }& t6 T1 J{
' E8 t$ j! p2 Ypublic:$ _" N9 q: j) Z! @' W
QFuture<T> start()
2 \7 q# j4 d0 O: a+ b1 {/ f {
/ A( p5 i+ W# J7 w this->setRunnable(this);- K% V5 }5 W( S8 i: v% Q' c0 s H
this->reportStarted();3 z- C! M# q6 Z) U9 b- P
QFuture<T> future = this->future();0 M y9 N* o( @& u3 k
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);: H" H' [4 D8 t" N" D
return future;
! A9 n9 P6 V& \: a9 w7 k0 J0 w }
4 l2 d0 m4 `# T: d: [
% q& Z( |6 a3 _3 _ void run() {}4 A1 |( ` a0 d0 I5 H; A
virtual void runFunctor() = 0;
; y* s. l s5 }/ Z2 k};
) u) ]6 W9 `( R+ k
: G* b' ?# ^8 ?! [8 Ttemplate <typename T># S2 o! s6 f4 a5 O) S" d
class RunFunctionTask : public RunFunctionTaskBase<T>6 F) d# N0 X# h! T c4 C6 I: j
{
7 u1 T, X- w- z9 o9 C5 X- Dpublic:- x7 L/ O Q4 d2 W# \, ^- A9 u$ f
void run()) C* W4 _1 t! R6 Y' Y$ @
{
- P2 a$ J" d" ~4 {2 |1 x% F& }$ }1 s if (this->isCanceled()) {& x" \0 L+ \: l3 Z
this->reportFinished();
& D2 n- O8 x8 u9 |) | return;) B8 I. T7 V6 ?' z& `
}
1 \" `4 y' t4 M5 N2 ^5 e( {/ k& ] this->runFunctor();1 V0 |+ i; a" d5 r% S0 P2 L3 H# R
this->reportResult(result);
: Q' Q5 v# q6 q* }0 i this->reportFinished();" h0 K2 k/ {' x
}
. X+ i5 J5 W* R T result;
2 P; P G0 j: v};
' G* P6 y+ |% ?2 D( U
& Y; x, o; z9 m$ e+ n, {template <>
; ]; r# x9 n' ~7 R, o" W, Nclass RunFunctionTask<void> : public RunFunctionTaskBase<void>1 d! L& x8 e1 F0 |! A7 B+ R
{
: l! m! C2 u1 m% t0 H1 Ppublic:
1 S1 I; E% x( d0 n0 Y void run()* W6 y4 B. B. W; K8 p3 P5 u+ z( K
{
, H& S4 A- l$ x% j# H* ]$ d2 N if (this->isCanceled()) {
- n5 U- C* y9 U; x- K9 m2 z0 Y this->reportFinished();
& w$ @& A& i$ _7 _# M% B+ t$ n return;( F8 F% |' \: l" I0 E8 g
}
, k$ l) O, T I% ?& p3 O: ?5 @ this->runFunctor();
$ | f, _5 Q& ]5 | d% i this->reportFinished();
9 F* |4 T# G( M% c0 N0 b }7 _* `' O, w: ?
};
; g, a' h. ~6 Z
5 U# m" c5 a1 g3 B% [& I} //namespace QtConcurrent
1 e, x8 ?, S) s% s' H: h- R# v/ @% K. Y( I- Y
#endif //qdoc7 I! T& I" W. r3 r" A/ r" N6 O. {
7 a7 o+ _% _9 O( mQT_END_NAMESPACE7 d; c8 J+ x' s3 F/ \
QT_END_HEADER
, f2 g( a0 s1 X
8 v5 H5 S8 \& h#endif // QT_NO_CONCURRENT# w( }; F# C7 j9 ~
6 ?! X1 R2 H7 r, V( T1 P$ r2 Y( q
#endif. t- T( u2 i) Y. B: x: i6 Q
$ i- ?/ Y" u* n+ R
|
|