|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
" o' k! c- K% X8 y2 ?/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'2 x9 i, h2 E& |( s, x
' X' t9 O4 p5 q5 ~* M9 k7 ~
这个头文件内容如下:3 Q/ x6 Z& @- a; b$ Q
#ifndef QTCONCURRENT_RUNBASE_H
% y9 p ~- `$ [) D7 n#define QTCONCURRENT_RUNBASE_H
" x2 V0 L) c8 K; z& U5 y5 w' `6 L3 U) N
#include <QtCore/qglobal.h>
$ n$ }5 @, a/ b# _* H
9 c1 c" ~( @* { q, V#ifndef QT_NO_CONCURRENT, S7 P5 D& D. q1 D
: Z% i- X$ x, n! N$ F
#include <QtCore/qfuture.h>
( F0 X, y! R2 o% u, D& o& }% o#include <QtCore/qrunnable.h>
: p$ F2 t2 N; U#include <QtCore/qthreadpool.h>
( _# s7 L; B& e/ Q! D9 y' I! @* R Y( T/ C$ a& W% I# w
QT_BEGIN_HEADER
; i* b. q. w# w& R2 o1 nQT_BEGIN_NAMESPACE
8 ^/ ?& l; }9 I3 N/ j- _
3 I( t4 E5 w1 YQT_MODULE(Core)& s7 j0 m( t( C3 ?9 p2 J. b! Z# Q
7 Z# J- F+ @) T
#ifndef qdoc! B/ x- I& x+ T v8 [9 h- Z6 f
& D# K$ X1 K q, O. P9 l3 C5 H7 ~namespace QtConcurrent {
4 T5 t: w' h" _1 g' W# J* E6 r5 Y _& u( u" P4 I
template <typename T>
% ^+ S/ V+ _" E1 Estruct SelectSpecialization
% Q P! X% J4 ^{
! D# j+ X9 `$ L3 d) X$ H9 u template <class Normal, class Void>3 O1 u! g3 e* Z* _
struct Type { typedef Normal type; };
- h" o# m" c S/ \' L( s};) F& G4 l5 X1 R! d9 N7 O. E
- t. |6 A9 M8 ]
template <>
' U- B j1 d1 pstruct SelectSpecialization<void>
7 g" m$ C. H: u8 u7 O# h{% F; r6 f# Z+ Z4 K8 y
template <class Normal, class Void>
( ~4 y) L8 D9 @ struct Type { typedef Void type; };
5 J% o2 Y1 F2 V6 o- ~& U* w) h; k};0 O2 n5 y& o1 d) U6 r, V
9 W2 `. X4 ], o' e" xtemplate <typename T>6 F2 E; q# X$ \4 I, U
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable& L1 E L9 j: s' ^0 V
{ ~( l2 z: i4 ?1 _+ ~
public:9 h& n& x0 B( b& s4 [
QFuture<T> start()
4 U8 R7 z4 [7 H2 @# d$ | {
2 e1 r7 `, ?9 E4 z+ ]; ^5 E this->setRunnable(this);
) U: Q* _5 [" c- [) F7 L7 v8 H this->reportStarted();
1 B( I3 U/ } s5 Q- i( B" T QFuture<T> future = this->future();
0 O1 \7 I# w8 L/ P. i r' M/ ~1 _ QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);/ J9 F) L% c5 W+ K4 p, e' Y
return future;
8 m1 e+ ^3 C$ B4 O$ z }
5 Q" G- N W( z/ N5 ~* y7 w, l' e. t" m$ N
void run() {}2 O- v8 A+ R( Y
virtual void runFunctor() = 0;, D& e; g* C* B' N( ~
};
6 y( K2 `8 T" C+ x Y1 v
/ j" k+ |2 o/ V$ X: T. F9 ~template <typename T>
5 `* C+ w8 E6 w3 V+ h% tclass RunFunctionTask : public RunFunctionTaskBase<T>$ r$ Z e* `* P8 x& c$ z( Z
{
2 L$ z8 P: }) E k7 f! k# {public:
* _ R' m1 ^' n2 y7 i9 c void run()3 D8 q; y- H: L, f2 P
{3 N( w1 G; ~" o4 S4 t1 u6 W
if (this->isCanceled()) {
3 a. _3 H: i" |7 [' w& U this->reportFinished();
: v- A. M; i3 N3 j# H5 l" k return;& V( h. \* ~6 k) z7 H) k% N
}
0 s9 w5 B6 d# g. {8 U, u2 e4 |! ? this->runFunctor();
& o$ H ^, Y* _" m% D this->reportResult(result);- c* }4 q& E/ U" C( L& |5 D; v
this->reportFinished();- s4 s0 A: ?8 J) u
}. w$ Y+ a1 C2 L4 ^
T result;
" X7 N: X3 x2 I4 T* Y9 N};
8 }) ~, z5 Z9 Q- ?2 M
" J6 p7 X" h0 o4 Etemplate <>
1 D4 V2 M e, w0 o& I6 wclass RunFunctionTask<void> : public RunFunctionTaskBase<void>: j5 t2 ~, [1 u! g' E
{
) U3 W/ I3 e0 Z6 E) Z9 p% E L, vpublic:
/ V/ e. ` i @6 o' K- N void run()
; N6 `; A6 h; B7 v {
- w4 z& T1 D7 o, |6 r if (this->isCanceled()) {2 k5 z% ^0 E# F) L3 [( }
this->reportFinished();% Q- ]' m1 u0 y& ?5 x
return;
9 g: O e G) P }
7 a! d* P# _' I; o9 r1 L' g' C4 _ this->runFunctor();
8 l2 c. o, l) k# }% ?) a this->reportFinished();1 T6 b$ e4 }& p$ G7 K$ o. ]
}
M! d+ [" B' r- d* L3 w}; U- m2 P9 f6 s4 U
q* C0 w$ J8 @% q2 u) }% c9 T} //namespace QtConcurrent
6 |, P/ t/ O; h+ A5 g- h
( X0 q4 s0 a5 |& c#endif //qdoc
7 f- z% J o. u. C' N7 \4 k6 B2 L: E) l
QT_END_NAMESPACE) k, i( b1 ^1 W! i- o6 z8 ^
QT_END_HEADER
7 B, m" b% H; a. i+ D# w7 F$ ?1 P& l& |6 h, U1 p1 U' o+ c0 i
#endif // QT_NO_CONCURRENT. M7 L( J5 b. u# e4 _
! c3 q) P I/ T5 O d. V) t: `
#endif
* [3 l5 b4 q# A
0 n. u6 S8 y+ ?1 W |
|