|
|
我对syslink进行交叉编译到arm,但是出现如下错误:5 s3 F& r0 z: ?+ q
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
3 j, N i N: w) v& f- R
9 w! y8 o) t2 K7 d) a这个头文件内容如下:
& H& O7 R4 Z1 [' y; V$ _4 x#ifndef QTCONCURRENT_RUNBASE_H; p0 {% x& t% a" K1 Y) t0 Z, D
#define QTCONCURRENT_RUNBASE_H
2 W! L5 x1 i: Y5 P) z3 f$ x9 H! d
#include <QtCore/qglobal.h>5 e6 R8 \- a' e
@$ _1 p0 `: W! C#ifndef QT_NO_CONCURRENT
5 _# x4 G( O: u5 E! Y
! b" p) z3 ]! }: x' t; C: ?8 r#include <QtCore/qfuture.h>
- G2 J& i; w; A#include <QtCore/qrunnable.h>
: r% _- h3 m+ P2 }#include <QtCore/qthreadpool.h> [, p L7 D! g, L4 N; h7 u
' C/ W6 r, A! T0 l0 m
QT_BEGIN_HEADER
0 q/ ~( D9 @( `) QQT_BEGIN_NAMESPACE
& ]; \1 I9 W x b
# l. k3 {8 F3 _8 V5 s( Q! HQT_MODULE(Core)
+ m6 }9 X4 w9 u" L
1 X7 ^: u4 v" `$ \3 I% G#ifndef qdoc- X0 h# \9 k/ o6 Z* M. Q
% r4 z" C" W* G# U4 A+ X# G9 u& h
namespace QtConcurrent {
! v6 Q$ a" {: g R8 g
# c" G$ k0 [+ G2 `" k& Dtemplate <typename T>4 x) y2 L* _8 `8 ~" N7 t% k0 P
struct SelectSpecialization+ O: _4 U4 R# H7 Z4 N- T
{
7 Z1 L9 O, B% T3 j! \" w: ~+ I4 L4 M template <class Normal, class Void>) Y: ?: x9 W) w9 H' P) O
struct Type { typedef Normal type; };
" ?" @6 U0 c( W, ~! x- L};& I4 T$ ^/ e, T0 M7 n
$ v+ \. j Z# b+ W' itemplate <>
6 b& t" J! @& f) E/ _4 `8 pstruct SelectSpecialization<void>
. P& z8 X$ e0 s% n, ]# x+ Z+ d{
& T6 m/ \- |) | template <class Normal, class Void>, q4 }7 q; U* U
struct Type { typedef Void type; };( f( @4 ^" ^8 b3 Q. D
};
w. D! c) ^5 w( X$ @; o
5 i' ^$ W0 r2 S B1 v% Etemplate <typename T>
% n! M1 J: b4 s& ^4 Y: _* Yclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable8 K' l( r* x9 f& X, W
{
+ H% G, b% X& T0 I) w& ]public:
+ Q" u4 V* A/ P: t5 D QFuture<T> start()
* ~8 J: w1 R% Y/ ] {
% a! |' [1 }+ H9 f/ m5 Z6 m& } this->setRunnable(this);
, }* p- X8 W3 S1 E this->reportStarted();0 r5 F* i$ q7 b
QFuture<T> future = this->future();
$ T8 s6 j( |9 W+ M1 w; x, r P QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);3 `) a/ y9 d( i+ m' e8 a* |
return future;
U8 G/ j. S5 n1 Y. \: w }
4 i0 B$ s, ~# ^' ^! q- @: U U6 E v- |
void run() {}
* k6 }% I) {; j6 Z5 N/ ~) c virtual void runFunctor() = 0;
3 H+ N2 Q' B5 {4 e" {6 m};
+ {! W: K" e; X7 `
B: U w4 G& w4 q @& |* p4 xtemplate <typename T>: Q, Q. `+ { u% n7 k/ B7 I
class RunFunctionTask : public RunFunctionTaskBase<T>3 e* B6 b* D) {; i: ~3 ~7 R F" T
{, q, a) s* w" G; J
public:' W/ V5 V. z7 u
void run()
0 K( O; A8 i: M9 ~3 h$ u {' K& J( p- I' f) {
if (this->isCanceled()) {
$ G1 A* T8 J J6 q y! v this->reportFinished();
0 s) f) u( P, H6 c" g return;
; [' M0 y$ S* b2 R! J$ f }. q$ k7 X9 k8 C# E: Q% k5 L
this->runFunctor();
! {+ _. v' H2 B" H" ]5 d this->reportResult(result);
8 Q$ D j' U. o# |9 n* m this->reportFinished();4 t3 j' p8 `; C3 U
}1 L8 |+ v' G- m8 y: B
T result;: |) ~- S! r2 b& w+ }- p
};# c" M+ U% t5 h& q9 |3 M! W
% H# E. D* G9 A4 Q6 I, p. ~# J
template <>
& @& O- |+ G' C: I: {2 S3 ^& S2 Kclass RunFunctionTask<void> : public RunFunctionTaskBase<void>: @; V; Y1 w$ b% O, w5 F
{! Q% I6 A& [0 K" f m- {1 O
public:4 ~+ G: R4 }) }# Q5 t
void run()% T% B# C6 G+ J
{1 A4 o* Q& S: ~+ u* K
if (this->isCanceled()) {
7 p7 _$ o! u- } this->reportFinished();
4 \: K% I U: X3 W& r return;. X' F& _- v0 {& b
}
, {( M+ v. v4 u! h. o this->runFunctor();
4 q: D$ a0 G# |7 r this->reportFinished();7 {# o) V( y3 M, i5 a
}
& `0 d1 `) C# X# p8 j};6 X8 x7 S9 Y( x: @6 x
! C* S9 J" g! A0 t' ?} //namespace QtConcurrent
7 V" v3 V/ X! q7 e- J. n0 u5 r6 h% u# c8 k# w
#endif //qdoc5 w1 B: | W4 ^
# z9 N6 F$ L* z# y) p' [. y, S" J
QT_END_NAMESPACE7 N" o5 T1 i) ?' n7 a5 b! ?
QT_END_HEADER$ {5 ~4 ^8 A/ [/ x9 @/ r9 J
( {5 [; s* E5 y/ Y% ?2 f2 w) p
#endif // QT_NO_CONCURRENT; O, r' H! ], j! \. d
$ ?5 I3 R$ F% ]% k! S; y
#endif
- q6 S& N6 @' j8 _: e' ^/ S, L) G& A% k0 g5 b! q& F v- {0 T4 V$ M
|
|