|
|
我对syslink进行交叉编译到arm,但是出现如下错误: @# ?, b' Z% l$ [" H. s
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'4 F3 O# t+ {9 s7 Q. {) {
9 `9 B h& M, L0 z0 Z/ e1 S- y; W这个头文件内容如下:
$ w# Q$ X# `- s2 b+ y#ifndef QTCONCURRENT_RUNBASE_H# Z+ n: k. i2 J3 p E& D. m
#define QTCONCURRENT_RUNBASE_H
3 x6 a# O# d A' @6 p& y# X1 L" K
#include <QtCore/qglobal.h>
3 g& Q# T6 M+ ^& \0 _; R% R- ^; n/ H! l
#ifndef QT_NO_CONCURRENT6 n* v& n) `# i4 p d
% c7 X2 Z2 `' c! o#include <QtCore/qfuture.h>
' }, ]! [) @& ?! T#include <QtCore/qrunnable.h>
& r& Y6 u3 U7 x- D, |/ H#include <QtCore/qthreadpool.h>/ K1 M+ e9 R D& O( W2 r3 a
, U" f5 F6 w& m6 tQT_BEGIN_HEADER
$ t7 Q" D! K/ R2 ]: N# vQT_BEGIN_NAMESPACE0 S& `- @: N+ V; h- \8 y: R
3 |, g* u0 [3 B5 V3 M
QT_MODULE(Core)0 Y" `: j9 C; a
8 p* }& C7 G( k0 B/ U
#ifndef qdoc
; q) @6 a! E, [0 f- Z3 `7 }6 I. b+ i9 q* _3 a: a: R+ [0 l
namespace QtConcurrent {0 H0 W: V0 f; d- E/ c/ ]
# B' T! a9 O# o$ mtemplate <typename T>
' }$ v( ^6 L* @struct SelectSpecialization/ b5 A5 T4 q- ~+ o
{. x5 Y& v/ |. [" I: w" o
template <class Normal, class Void>$ L6 M% c" p! T* S0 f( R; ?
struct Type { typedef Normal type; };
9 O; l: O! |1 x};. {- Z' w% j! B# H7 u) u/ G+ ^
/ Y3 V* p5 I( Otemplate <>
6 E$ f# j, C$ Astruct SelectSpecialization<void>
8 _( g) i; O; i+ Y{
/ q: j4 W! x1 a ~$ ]8 }& c! w2 X template <class Normal, class Void>
0 Z) y, a' t s4 ?6 i struct Type { typedef Void type; };
" T+ M# B- e- q& m};
7 r4 H# u: i6 W% `/ | B5 e) |1 U' G1 r' s
template <typename T>4 Z o E% ?* o; h3 V; G3 O( `- l
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable1 f4 A( v7 W5 F. n' k
{
* }6 |1 r$ G) mpublic:
" b# H- M$ M! i" I) W S1 r, z3 U QFuture<T> start()
& A9 I8 j, s0 ~) ^: v {
( y9 D& K( {! q+ T; _; ?, F this->setRunnable(this);. ^) h& z( r& d' x; W, w% d
this->reportStarted();% E# B! V, @2 V" g" o7 r6 Z0 r0 T
QFuture<T> future = this->future();
# W" k6 }3 V. z: q QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);. ~' _1 v+ L$ m5 [ j' l' d- y4 _% ~
return future;
2 x! {0 B5 z h$ _# O }
4 t- q$ R0 Q# k) A2 a2 n7 i( c* r
2 v, Q; ^) s* V& J% T) F5 [ void run() {}
+ q8 T) z% o; ^$ G* c virtual void runFunctor() = 0;
- K$ p' A9 K. _5 l& J% l- E};
# U9 O0 o' F4 A6 Z$ o# D6 i. D: k6 i7 \
template <typename T>+ b5 X! E4 A2 V7 f
class RunFunctionTask : public RunFunctionTaskBase<T>
( w% F7 h ]* V8 H. |0 k{+ [! B* s) ~; {( l' V0 C" Q, E
public:) l5 n. ~; C7 ^& W' Y
void run()& U' K4 g7 j) h7 m& G
{
- c$ L, z `* } if (this->isCanceled()) {
2 v4 h7 c' p& z. p. S3 X: }1 T! ? this->reportFinished();8 j& i$ j. k) @
return; F7 S7 J7 j R1 O$ K4 | B; t
}8 R- q/ M$ s: V5 i3 `8 {3 ]
this->runFunctor();
. B8 V, s% ]9 v this->reportResult(result);- ?2 o1 o! r3 C6 `/ B* i
this->reportFinished();
' D$ S9 m7 I |' D" }) d( H8 } }
}, }' H0 s# R T result;& x0 R6 [0 w, I. w) ~ k$ S7 K
};
* {& C& }. u, x T5 `( H1 I" T5 [$ u G' T' V) ~
template <>
1 T; G8 _' x: @0 s6 E* _! kclass RunFunctionTask<void> : public RunFunctionTaskBase<void>' I1 D% I( B0 U! T+ R* h
{
: j0 B; C3 K* T' u: S' @8 Lpublic:
) K0 @" s* \2 m2 D! N5 ?; ]9 g void run()
2 s( E9 P+ v+ x- {. A( ^1 P {
; g; w) @; E2 {2 J8 S8 P if (this->isCanceled()) {
6 O+ c6 t$ l) d. Z3 J this->reportFinished();
9 \: `& U/ A3 }7 {# P# y return;/ Z9 B, S; l/ m; `: ~1 |3 h/ L
}
3 h: {. @4 T: j this->runFunctor();
% v& E: E7 X4 N! C6 N this->reportFinished();
2 `0 N" H* e) K7 z, y }# p0 b+ f% Y# c! g! y4 |0 A
};* ^8 \$ @, S( c+ j, `
* u2 C" J# S0 L! |$ p8 ] d} //namespace QtConcurrent
Z7 K5 r }; h8 L+ Y3 f. h+ `6 u0 Z5 t, B( y/ d
#endif //qdoc
/ l0 D$ u- e4 I1 s7 R# o& Y# z' K5 \% G' K/ a( h& w
QT_END_NAMESPACE m& h1 d( ]* q' m: S% |
QT_END_HEADER
1 ^( ~, u. c1 Z: m7 e0 g/ @- f1 O: y3 r8 c( n" D3 `9 a
#endif // QT_NO_CONCURRENT! C- @/ @- z6 z& }% C
- c! A1 D# H. I ~' B#endif+ j" V2 S5 J4 P) u# [2 a2 n
O. m5 _, i6 B( O. j |
|