|
|
我对syslink进行交叉编译到arm,但是出现如下错误:% m5 Q! ~: X* K' x7 l( k6 f, W
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter' m8 H5 E# W _- }
* K e( E ? N这个头文件内容如下:
, V3 h( h4 h9 b#ifndef QTCONCURRENT_RUNBASE_H, H" M5 L2 W' ?$ L7 q
#define QTCONCURRENT_RUNBASE_H7 E% R/ s# i' R* v! ?
( w" I# E/ Q5 g#include <QtCore/qglobal.h>
; G$ H7 f+ ~* t. U! S. |6 H/ o
) |5 C$ i" N/ Z }; I#ifndef QT_NO_CONCURRENT
- ]1 j* H% w* Z4 V" p7 P5 J# @+ w7 L1 D: H
#include <QtCore/qfuture.h>/ \' s9 R3 R; G
#include <QtCore/qrunnable.h>
7 }& |- H# j6 g8 V2 ?' A0 R#include <QtCore/qthreadpool.h>0 F t% j# C/ L q1 S. N. P0 X
; V0 h; Y$ Q: J& x$ Q8 r- w- \0 [
QT_BEGIN_HEADER6 J5 ~: B" x; x
QT_BEGIN_NAMESPACE
/ n5 {1 [2 w9 p3 b
: k5 z: X' W3 ?& Y: m# F. DQT_MODULE(Core)7 }' X: {' z& ^( | H+ |( W. }/ I
5 O# Y* b+ U w) A
#ifndef qdoc& y$ p6 V4 Y1 R1 ?
b5 d; \: m) x% w/ _. o' A
namespace QtConcurrent {; Z5 y! j# I5 u3 f, I* R! R
7 J9 B2 J: q% X( X: @
template <typename T>' Z) e( }: u$ ^5 _. H
struct SelectSpecialization
: C- z8 @& c6 A) I. l{/ R* e" R- E. @2 e
template <class Normal, class Void>
5 A* U( R3 u% @, ?* i struct Type { typedef Normal type; };1 w1 ?' J& ~* k3 `3 V" L7 V0 d6 \/ W7 K
};: D3 |6 O) s) \- d8 {
. {) z k; r) M9 m; ctemplate <>$ p, e8 Y) w- a* q1 x/ E
struct SelectSpecialization<void>
& v# a4 k- k2 \# T" k g- h0 D, R{& p2 ~; H4 L- y0 f3 _
template <class Normal, class Void>
4 R3 n) ?3 `( ~: } struct Type { typedef Void type; }; Q/ x1 C! J) q, I
};
! l o/ S) m( |& ?& A4 N) N: ?) P: d, S5 [ A8 u
template <typename T>+ s9 u P; G1 ?) @! u7 p
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
& f" e$ H6 I4 L" q) @+ {, D& _5 t9 T{1 n& p2 v- I' N+ T0 c
public:- [4 i% R x) f4 T6 R$ P4 p$ Z
QFuture<T> start()
0 d6 F6 u$ O+ r9 S: e {
7 D1 t5 |( F. b# U this->setRunnable(this);6 u& c! h! ?7 P& ~
this->reportStarted();
+ o; u+ O* I5 j! S* L# |* d4 L QFuture<T> future = this->future(); p, O# k4 n" f! O% ^" C& \
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);! [. z* r3 S+ j' K; `" T L
return future;
+ \0 E4 s7 V* [ }
7 C4 L& d7 X. ~6 L( I
7 m8 D9 N7 a" y. i* B s' d void run() {}" ?/ ^: ?; t$ _0 a% ?* ^
virtual void runFunctor() = 0;
: N3 c& y2 U; f- o' S, [};
# |6 j4 S$ h- ~
* A/ Q1 d# H9 W4 n$ ftemplate <typename T>4 w( ?* B. J* g, d
class RunFunctionTask : public RunFunctionTaskBase<T>; M% _, U0 ?7 d" Q
{
% b' n& V- d& h2 |1 i" D' J: tpublic:8 V# G$ c! H+ y* q; ]: c' r' ~
void run()
$ v" t( q6 E, R& _5 B {
1 f! [8 `! V( s; E0 ? if (this->isCanceled()) {
1 A# k/ B2 R% U" H+ z this->reportFinished();
2 _! S/ x# S/ s! I6 e; e9 X; ?$ z return;
2 ^2 w! q3 B% ]/ i: O! K; `5 h/ n }
9 _. p1 g) c# w4 }; | m- U# d this->runFunctor();
& V) \% q5 u; i; e this->reportResult(result);6 C, {( Q. F, P2 {8 ~8 u' ?/ ]
this->reportFinished();
, s$ E: T y0 S+ u2 K8 F. J$ w* C0 h3 I }- l8 U; _% B/ e7 r' ]
T result;
6 H# V$ Z5 ?% v7 `- [};2 g8 E9 l% @# P" q; p3 [
- G! O, L0 o4 `* k4 X; `8 K
template <>5 l# E) B7 V/ ^1 M8 j
class RunFunctionTask<void> : public RunFunctionTaskBase<void>6 c: M6 j4 D: L+ x# T
{
% k/ ?) F4 q0 ?3 ipublic:9 t9 ], x, g9 n2 O+ ^7 p$ Z
void run()
: y% L2 u/ W! `* e h6 E# S8 r5 ~8 C {; i" b! ?) S O5 }7 {6 W
if (this->isCanceled()) {
, ]& B8 O# c; L3 w7 O, [ this->reportFinished();$ S% J( Z0 `5 X, ]( ]4 J
return;
) \7 c4 X3 ]5 e) G- E0 P, E }, J' o2 `# P% v2 Z: Z
this->runFunctor();0 G8 B I* B" q* O" e2 U g7 {$ t
this->reportFinished();
( P3 |# ~7 ^6 w7 L7 F$ x. ` }
$ C9 B2 J" ]! p; N};) P6 p T8 S; |: |, K- }% E
8 r- }/ J1 ^$ h* d4 o
} //namespace QtConcurrent$ S0 Y# X, f! v: P4 u* P m7 w3 N
& y3 `3 r. b! ^3 W& I, U#endif //qdoc
' J& P3 p: ?- R0 C% b, n) H
; l6 G, x$ ?, A* MQT_END_NAMESPACE
6 y/ y! d5 y; D/ [9 @- VQT_END_HEADER
8 v& |: o& k! w# _. T6 [( x4 s, m( k* _
#endif // QT_NO_CONCURRENT
8 v4 \2 l7 }8 X3 ?; A3 Q; Y" a! Z
. |! }+ m R6 Y* ]6 S#endif
& |2 _+ i) l& J2 E8 U% x
; @% u. Z5 V% ~4 V/ h( _8 m |
|