|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
' M/ W& b4 m1 W7 Z5 ^/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'+ k$ `3 }, W6 C" S2 W
) {7 N2 M/ {) k" I- m: g! [8 h
这个头文件内容如下:' A; v& V2 r8 j1 }) `/ ~2 H4 k
#ifndef QTCONCURRENT_RUNBASE_H
* w( d% ?. V! M#define QTCONCURRENT_RUNBASE_H1 c. S# G) W/ _. J; P
- n+ v' U) e5 o* |9 V5 b: \* F#include <QtCore/qglobal.h>
/ m1 b( Z6 a& O1 X! |8 Y3 H y
+ r; M" `$ b6 _& @. y% \4 x#ifndef QT_NO_CONCURRENT7 p8 K& s0 b$ Q1 {2 `( C, T4 n
- l. t7 j3 \1 K) Y
#include <QtCore/qfuture.h>0 F5 i" U6 F+ z- d& Z8 m3 X& ?" H: _9 V* u; ?
#include <QtCore/qrunnable.h>
9 W9 t" `+ X8 p7 v$ X#include <QtCore/qthreadpool.h>
% X# J5 _ h# m! k* `' @5 s+ B, @* z9 h$ W
QT_BEGIN_HEADER
- z9 o+ R: V" h2 J' zQT_BEGIN_NAMESPACE
: ^3 w/ Y6 t$ ?7 _8 ~8 |' e5 ]' i3 _+ x% n
QT_MODULE(Core); \5 `" U8 C# M1 o% F" B
$ h( m9 V+ q) S" S+ X$ Q#ifndef qdoc
$ c* ? F' n3 S) ? \8 [
% k0 \1 ^( q6 p% b* Anamespace QtConcurrent {. S- `& v. L8 L* O/ o4 ]9 b
) |! l- O) L' ?
template <typename T>. f5 c5 n2 o! d8 z
struct SelectSpecialization+ u6 ]" A: N1 w( }! X
{
) {! E- n( y/ M2 Z; n" e0 q \ template <class Normal, class Void>" ~' Z; i( x) j( U
struct Type { typedef Normal type; };
I! o6 r$ m8 I/ f+ J* T};5 T* n+ @6 `; q9 U* t7 {* h0 c
9 u9 S, X3 V, E& L' U+ H# Atemplate <>
' p* L& ~; q/ d G+ g0 |9 F0 h0 jstruct SelectSpecialization<void>1 K: Q- S' A5 v( q( w+ b; ]
{. q/ U& c4 G/ K, h" ?: q
template <class Normal, class Void>0 k' r8 y' ?' Q4 h/ U/ R4 A
struct Type { typedef Void type; };! |0 t3 L4 A% T
};
. X% k4 k( {* V+ m4 n0 Z$ j5 k( J. s# V( s" @8 ]/ Q0 j
template <typename T>- ^' T6 s0 n `5 Q. E; N
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable/ ?" e) Y7 c! l& h' p' x
{! p7 y) g2 A0 V6 W _
public:, k* G) y7 P2 h+ E7 F7 \1 M
QFuture<T> start(). H! J+ Q, l. H: W3 G
{
( \1 Q3 z+ y1 I7 [) }* D this->setRunnable(this); V* z! I. d1 D
this->reportStarted(); @$ ]' [6 i# Y8 n0 f" W/ N( U. O* {
QFuture<T> future = this->future();
" h' o- b% S6 F$ b QThreadPool::globalInstance()->start(this, /*m_priority*/ 0); e; W- K" Y' T' I, {, ]( C
return future;
* C! E! \5 `! g' P2 p }
4 r& y4 H3 b( o( ^ K( s5 E" e: r
void run() {}
& G3 B3 ]- Y; C2 p u* Q virtual void runFunctor() = 0;$ Q/ I' q4 `1 A" x
};5 f O5 n# r" _, U
" l% t3 _/ v5 r8 j
template <typename T>
' j4 {, l' N T; o. |5 I% Pclass RunFunctionTask : public RunFunctionTaskBase<T> u7 d" \5 K( Y: u; L- x+ X
{
1 E$ ^" c* V6 x$ npublic:
6 _1 O3 [0 C) G; H* J void run()5 _+ i$ E+ K- D4 q
{
9 D# m! K4 ]( B% g if (this->isCanceled()) {
/ D4 C! l# t5 r8 S5 H7 Q9 l9 x this->reportFinished();7 L+ w5 O$ E1 Y9 R) F p6 V
return;" r) S E6 L8 v& F
}
5 Q9 q- L; D, I; i this->runFunctor();. j; Q+ v% _ h& J1 G6 T& R
this->reportResult(result);
T2 C6 c! D( h S7 R/ ? this->reportFinished();
7 A6 Z/ }. @$ r+ n2 } }# W6 ]+ W# `" w; ~! c ^0 r" U0 b
T result;) _% L9 m4 f* i8 E' Q( X8 {
};
6 ~6 Q9 r g; q$ K
' _! K/ |) Z+ G$ P, ?$ n6 `. R' C( Mtemplate <>; {. Z8 o, M6 b+ k% I; K
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
6 U7 T5 R3 q, v$ v{# ]% j2 t2 x& Z/ \6 C# i9 H' K
public:
. R" p; V& t7 O. V8 k void run()
9 O$ G# ]" i3 P$ B7 X7 h { f2 N8 h# j. R+ W; t# B
if (this->isCanceled()) {
0 G% n5 D: L; t! @+ A this->reportFinished();
& `' J9 A" G6 x) b* h9 k' ` return;
* h% u, I; P% A$ U9 q+ i }3 @/ d g, L8 I5 k
this->runFunctor();
$ j/ n6 V, j; E6 d/ B* d this->reportFinished();$ q( _' d8 x6 N/ @5 F2 l
}
, T7 W3 b/ g" \8 w: q};
3 L% P R5 ^. }( E0 ?: W1 X2 L* ~2 g. z9 Q7 w: x( I" _7 N, Q
} //namespace QtConcurrent2 q( ?' H8 J( G7 |% R
# Y/ _% W3 C; H/ H L2 e0 z
#endif //qdoc i# e/ h$ P m: D$ v% `7 o
/ @4 m( n5 W, ^( MQT_END_NAMESPACE
3 R' u1 Z8 b2 Z. uQT_END_HEADER; h0 l5 l+ p" E# l+ v L: b8 n
* A* o2 A9 O, @. ~( [/ A
#endif // QT_NO_CONCURRENT
# p! E' ~/ D- k0 L4 y& H9 Q% s C$ ?# U) T; u2 f* k# x% t& g
#endif( J# z, V' g2 S$ i9 E, i$ t3 |7 G: d
) ?; s: ~ \- _* i. Y% z# e
|
|