|
|
我对syslink进行交叉编译到arm,但是出现如下错误:0 \8 Z# q0 V( i
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'# D. ~: b( O$ Y
q# ^. S+ S& ^ M1 x- P
这个头文件内容如下:( Y7 C2 \+ p" d3 u J* p. u& |
#ifndef QTCONCURRENT_RUNBASE_H0 M5 C' T5 d4 r( [7 D
#define QTCONCURRENT_RUNBASE_H' C. p, D& C, N2 v8 [5 G
" m% w% e B) ` ~) Z6 A6 ^( ^
#include <QtCore/qglobal.h>
5 W' g X2 h: Q
8 J9 d# }+ d, I" I7 d0 X- ^. F#ifndef QT_NO_CONCURRENT! @# M9 p; u9 ]; J
( F" _7 Q% y! U# w8 J1 R8 F
#include <QtCore/qfuture.h>
# |- d* J+ w# K* @ |* |% r#include <QtCore/qrunnable.h>! U% a) A- \ W, V
#include <QtCore/qthreadpool.h>: L S T. D& S9 T! D+ ~" H
1 z1 b% k- ^/ e' p- l/ d6 PQT_BEGIN_HEADER
: _& H. M% }- C1 i+ b3 XQT_BEGIN_NAMESPACE
. e# C: ]% N# a# j- k5 |, d! z/ i& P+ @7 v* ?# ~0 z3 }
QT_MODULE(Core)5 F% k4 ^8 x5 M% e% f2 R
, L, H- r; J4 n7 k
#ifndef qdoc
! {2 ^! B+ e; g2 P0 t2 L# B+ ~' ^- L
namespace QtConcurrent {
" d. j; C" }) C, e0 T' Q' O
* r* w, n! h+ g1 T4 |0 Otemplate <typename T>
S! n" k; u, c+ Jstruct SelectSpecialization1 @: S* B/ c$ Q, Y! g0 g
{
7 t! O, T6 s- |4 m8 \/ } template <class Normal, class Void>
! r+ ]( v9 V: f% Y* ` struct Type { typedef Normal type; };* W0 s# x( L5 P: ^) V
};
/ q, z: D% M P# @1 ]0 q
5 O6 y0 Q+ j/ g2 R6 S, _9 I. Etemplate <>
8 \0 s* y: n B% C$ O3 ustruct SelectSpecialization<void>
, `; G" T" X# n{
5 l% l+ W- u- O; g8 B+ P) J* O template <class Normal, class Void>% @5 R5 {' H+ b/ D3 g4 R8 x8 k
struct Type { typedef Void type; };, J+ u" M0 U, F" h/ ~5 B
};8 d- n% _1 ^9 ]; W9 l. K
5 H# o% r6 u, N+ q8 g3 j1 ^
template <typename T>
" p2 ^- ?0 S* e2 O) F! r7 L6 p& t0 pclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable8 T- p Z0 T4 Y+ L' ?$ ? `
{
9 a/ F8 }& J+ e1 `public:8 A9 t# o; q; e& e3 [
QFuture<T> start()
8 B& I& Y/ G3 [* y {. `7 Q" _; X, G7 u; ^1 D& p
this->setRunnable(this);9 w; C# M$ t1 @9 S, c
this->reportStarted();0 ^- }7 ]0 f/ {
QFuture<T> future = this->future();
6 I+ S- v2 `6 n4 A& E QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);- R& u' ^. J# H- |" i
return future;
: m0 d3 H) y% Z4 {0 @ }7 V! s, h* j& S' r- P H. j
" [$ `9 e K6 k void run() {}, y8 a2 E3 e# t- S" K: E+ Z0 g: O
virtual void runFunctor() = 0;& f" t' K' m- h( ?6 C% m8 I: l
};
4 h# ]5 v! _+ j" ?* x" |7 _1 f% y. U" ]) J$ |) m; i& v* }' `8 O, x
template <typename T>" e0 }3 O7 A+ G- e( e0 {6 P
class RunFunctionTask : public RunFunctionTaskBase<T>( l$ ]" p5 j/ [ z% a
{
d: F: N$ Y5 |3 I+ i; p# Epublic:4 F* s4 w5 \) n* F& t" D
void run()
- X' I5 d$ Z7 S' g {1 Z) Z5 J% r* M: x
if (this->isCanceled()) {0 K! }' m+ w7 s# u/ g
this->reportFinished();: @ _& u; m% ~ u4 O
return;+ G* y: ^+ D9 l$ w& |0 _
}! M5 \% N& \1 @. Y N6 H) c* s; n
this->runFunctor();5 \/ M' U8 w" d- d- ^3 |7 H
this->reportResult(result);
/ I) j1 {+ D- j9 X$ U& j* K6 D1 E this->reportFinished();
; }& f G- H- y' k- _1 e }# Y7 j R% `0 v4 X% @
T result;
/ V& [# ~: h9 C& l8 ?};
% H6 O6 q. G5 M2 j, w/ F: i) ]. \$ c4 @1 F9 m2 @
template <>( t- v/ g+ W) z$ F; }9 Q& k0 {
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
5 H! S o+ {+ [' e, s' I{
) L0 V3 y: j' @5 f- l7 l' Upublic:
3 P' R; d) m: q$ W void run()9 v0 g: |/ c2 K3 {
{
5 d6 O; E3 r' P. N9 k, |/ `3 p ~ if (this->isCanceled()) {3 u5 n& }! Z- j; e" W/ T
this->reportFinished();9 t: f5 z' E2 w- H& w3 p$ k
return;8 ?. W I) J( b* v
}! i" }$ F' A6 k+ R2 h
this->runFunctor();
( `4 M# B) G; r/ L) S this->reportFinished();
2 c1 |5 z3 K$ x9 `: W }
9 c, b; h e P U- ~};/ h' e$ ` n5 \
6 c3 {7 s0 J: w4 n4 U
} //namespace QtConcurrent
0 p6 Y+ t2 F8 q4 z, E8 k# P2 H' J
2 Z$ A( @# X* s) G" P8 s B#endif //qdoc6 ]* E8 R3 n# z5 B. K9 Q6 w
7 }) V/ ?3 Z y1 x7 ]4 @. x: hQT_END_NAMESPACE7 T/ Y( {# E; q, W5 K5 K# y3 K
QT_END_HEADER) V4 _0 Z* M3 g& c
' i! u) K! k1 H" |2 g#endif // QT_NO_CONCURRENT5 f. }! S0 z1 p" |1 L
5 ^) \! E) z r/ G) h# f#endif
$ j6 {2 G; E5 D8 E4 q
4 r" Q" v; J- c* p |
|