|
|
我对syslink进行交叉编译到arm,但是出现如下错误:- g+ s+ {/ ^. G ~% @! Y, l1 o- N! d
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'. B6 F$ |+ ~, ^- \
# \7 R; S. @! A; h0 o% S" q这个头文件内容如下:6 `! M! N* v1 j. s: P9 m& W) q! j
#ifndef QTCONCURRENT_RUNBASE_H
" N3 M. ]+ k7 I#define QTCONCURRENT_RUNBASE_H( c T/ a6 x$ F' K3 a
, a8 r! p$ g: N. `- [#include <QtCore/qglobal.h>& Q+ ^5 ~8 [6 G& [; I& G/ |6 x
i4 r) R# W3 e c. R, n8 |8 d
#ifndef QT_NO_CONCURRENT
) v( O& Q4 T; I
K$ ]/ w$ ?9 T/ c( I5 Q6 `#include <QtCore/qfuture.h>: n5 m" o m) d. t: b% _
#include <QtCore/qrunnable.h>; @9 X* T. U+ E; A1 a1 B: n
#include <QtCore/qthreadpool.h> [; K2 \. A, ?4 }; X
& |- N' {& ?: s$ c+ d0 C3 B$ _
QT_BEGIN_HEADER2 {7 y% P! {; B
QT_BEGIN_NAMESPACE6 T4 ], D- c9 p! }6 P5 P8 d
. ?, \% P& Q h
QT_MODULE(Core)
7 @: s3 T# K) t P$ o; j$ {6 y
) A2 `! ~* e& ?; p7 m: Q8 n: b#ifndef qdoc; W, r& b! E( j$ N# y6 O; m% L
! E; O$ p n- ynamespace QtConcurrent {/ d9 K+ L5 z: s
. z- H/ O' }+ e9 L: @template <typename T>/ }& `9 D. e* [: W. c0 m
struct SelectSpecialization/ K1 p- h; u" n _/ h: m5 D8 z
{6 I: k6 A1 {1 @ `
template <class Normal, class Void>
9 t7 @) ?7 S& w ^ G struct Type { typedef Normal type; };
0 ]; r! b" [# N$ g9 G};
* y3 `% c4 y) @: s; e* o9 p9 T0 U2 w+ C+ V8 m
template <>
& k/ y7 }# ^0 M+ nstruct SelectSpecialization<void>
% A3 b6 q( F! R$ A{# }7 M; J* b9 ^
template <class Normal, class Void>
' I/ i3 ]8 Z- n8 X8 _3 E struct Type { typedef Void type; };
' I: u4 k. x% f) a! b};
/ N: a( Y) `8 \+ i) i" [% e4 A* z; @, y2 g8 W2 P% q
template <typename T>
5 d# D: L: B$ z, f% s1 L+ n1 v7 ^class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
; I, d% Q) ^, u4 u: J2 q( f* w{
2 b* m% k- [5 `( x" y- @$ a& lpublic:8 V$ ]% ^' Z# { t
QFuture<T> start()
3 b+ f9 }$ y: B' h# _2 c7 M* k {
) f4 m! H% S7 s! b. n. ~0 I this->setRunnable(this);
! Y6 G5 V/ K( S& J9 q! }, ? this->reportStarted();
, k8 u8 ?; t+ k7 i4 ]9 k QFuture<T> future = this->future();
2 W7 V, X$ j( N0 O, J- J; } QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
, v# X/ f: }6 I return future;1 P) g- U! c) J, o* y) m! W9 n
}, ~" b- y) K3 l+ H7 |* U' Y
2 A, i4 d. x/ L/ U' [( A void run() {}2 L: @- j1 H) E4 I
virtual void runFunctor() = 0;
9 q( s& X" V( v6 m4 W5 O- P- L1 f/ L};8 s% x- Y) {7 b7 e2 g" M& K* V9 a
& @3 \( S1 i3 l$ h6 R0 }
template <typename T># v. N" q8 s( X
class RunFunctionTask : public RunFunctionTaskBase<T>
- b3 ^( M& S: s' b1 {' X{
. ~: _3 K7 T( F9 i6 l& j! g7 npublic:
4 a' ^9 E+ k7 q2 G' P) @% a void run(); m" k# }9 e% }. z" i8 }: X# m+ S
{% S7 n: n* E( x4 O8 h i! H
if (this->isCanceled()) {/ A% q3 x1 H* R6 c3 W- V% S$ z$ U* \
this->reportFinished();( Z+ q( n7 w( {. D9 C
return;
' Z5 L9 N0 c7 h* ] }1 j& f# [7 k$ H i5 d7 i7 Z5 j
this->runFunctor();
1 [! E# h8 a' t8 r- j this->reportResult(result);
0 \7 J) g9 F K s5 e+ c this->reportFinished();
* a! C7 W# H$ [% S }$ I& t! A% ]( G0 L2 q" P
T result;
/ w( z' m2 ]& T5 y4 L};
' k+ W- D) @$ K) ^, S% Q9 k: k! V4 f" w# f) _0 _0 E
template <>
- w" _) q- {" C& M Hclass RunFunctionTask<void> : public RunFunctionTaskBase<void># D9 _# M+ D6 f$ U6 P
{) J5 f5 B4 \+ G# T* [
public:
! z# T# L. O/ l g0 M void run(), v* z/ Y' k4 ^& b' L4 V$ T
{6 y$ U( _: r6 v- M* W! Q
if (this->isCanceled()) {
" f6 o5 |5 n8 j O this->reportFinished();
9 u/ H. \( `% W* F return;
. Z1 g* e* j$ C6 S5 A6 c }. W. K, n e0 S8 s' {& o, I
this->runFunctor();. g, X2 P( ?0 e n+ W! I
this->reportFinished();& I& G6 W8 j1 I1 Y; p" o! C$ b
}. f5 \1 X" l9 {$ D
};7 {+ S) P6 D7 N7 `+ v) \ n
$ K3 _8 P5 V: _; h0 p
} //namespace QtConcurrent
. ?% s) j& a4 j/ E; h7 K1 M9 {- T0 R X7 g8 R( C& _
#endif //qdoc# D; P& g- j4 o0 d
: M+ ^, g( Z1 Q
QT_END_NAMESPACE; j8 I& B$ Y' k; w K& y
QT_END_HEADER
9 j- I n, [9 X9 c. r8 v! o2 B% B8 o L2 ^# q& n
#endif // QT_NO_CONCURRENT
; z& r! M# g+ V" h9 _. A/ d+ Y/ { {# g0 W& a* F
#endif- u0 t3 E* y$ S H/ y
' I5 b# v# ~: v0 }) D |
|