|
|
我对syslink进行交叉编译到arm,但是出现如下错误: C; U3 C- q3 z2 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'
9 C8 o: r1 G: s$ z8 m1 m' S# ^$ [+ s% K
这个头文件内容如下:
& ^+ V2 R7 q0 j6 n6 g9 b#ifndef QTCONCURRENT_RUNBASE_H
/ a; {1 V7 B7 [6 \( P; I#define QTCONCURRENT_RUNBASE_H, x/ g+ L! B: _. v) L3 E
# X/ O: S' ~0 b5 r( B0 P9 ^#include <QtCore/qglobal.h>
" ^2 c7 h8 [9 C* r
, ]. O# v9 `, ~( x; ], N#ifndef QT_NO_CONCURRENT
$ W/ p2 v$ ^( y- o& o- y* T9 I% J B" n0 m
#include <QtCore/qfuture.h>
1 y) s( z" T7 v/ D5 e7 N#include <QtCore/qrunnable.h>
* L+ ]0 o3 C$ p4 \7 k#include <QtCore/qthreadpool.h>
1 b8 B, Y2 L" G4 O/ H g( O; | G+ a. C( q! A" R
QT_BEGIN_HEADER
2 b& }7 c; e' [ S7 n, aQT_BEGIN_NAMESPACE
9 b1 _ h: a1 v0 D* z4 x+ K
( i; @% x; a$ q8 `9 \& ?7 ~QT_MODULE(Core)
: i/ n/ ]! A: I* B5 d" |* ]' h& j' i% d+ J3 ~
#ifndef qdoc
' m4 O" {7 P9 X( Y& t4 E7 y+ e+ M; |& ~+ p S/ P8 j
namespace QtConcurrent {$ d( `1 V I) [7 |3 i9 d
$ ~1 Z/ v7 C1 f) ?
template <typename T>' n- t" M' }( o- P$ @, S# M" {
struct SelectSpecialization
! U/ O% n" V) F7 Q{8 u J8 w2 l9 |, M% ^4 \
template <class Normal, class Void>
# c8 D7 l K, c struct Type { typedef Normal type; };: B; s& x. Q j, r) F2 x
};6 h! z5 |( X' |
W- _3 D* E& a0 h2 Q
template <>$ d: u0 ?8 p) W6 L
struct SelectSpecialization<void>4 h$ F- e. p3 ~, H, D% T
{
8 j5 \9 t' A; j J& C" D" T template <class Normal, class Void>" C8 w0 C: @9 o) i" r
struct Type { typedef Void type; };4 D; X- W" C- G( r' ?+ T
};
: _9 ^8 O, \# f8 Y% y+ `5 n2 \
7 s' r. R, K1 w6 B$ _0 d, x; \$ c2 j# o# ptemplate <typename T>2 Z! g+ E) {( V# f& Q
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
. e+ u& O( } I) y5 o7 q{
% ~% n z8 u! g R) |8 E9 Kpublic:5 l- f* q, T/ c8 P; J0 x
QFuture<T> start()
. \$ I* _2 y* N+ {; ~0 j. B/ j {& I5 {+ l( P- x9 v
this->setRunnable(this);
2 W" K; t% q0 \' r this->reportStarted();
; R6 F. t( C: W2 u3 R QFuture<T> future = this->future();
% N' A! l! `" X0 d QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);9 Z3 {* M5 L( J7 { w
return future;8 \4 p* I/ S, y7 M _5 V
}5 Q6 p( J. ?# N& u; R I
! |( I) ?& K# l% Y void run() {}7 b: a$ V# [2 P9 ?( u
virtual void runFunctor() = 0;7 ]1 A6 g6 a3 x, T! k2 h l/ _/ _
};
" J/ B" T+ G6 s! p
5 z. Z6 t9 k7 I u& v9 G3 `3 qtemplate <typename T>* l. K5 k) G* o
class RunFunctionTask : public RunFunctionTaskBase<T>4 K& e# I* v+ V# {
{
, D g! C \/ n( Kpublic:
! B X: w1 P; `0 N1 z3 G7 z8 S, T void run()
2 i' n# U7 f4 j {6 _8 V, ?! T! x: d
if (this->isCanceled()) {
! m! w" ?5 L" J0 v" R: B% r this->reportFinished();3 e X- \; v/ Q
return;$ P& e) P; p4 b
}! b! s; b; }& l7 S6 b3 J# N( h$ }
this->runFunctor();
' a7 h0 ?- u% c q7 ^+ u$ U this->reportResult(result);! ~0 c5 d$ R2 d1 Q# k
this->reportFinished();% C( l' i/ m0 y, }' a4 _& s" P1 [
}7 r2 K7 e# G+ Y; i1 u' q. ^7 e9 Z
T result;& O/ v6 ] _) R2 S9 D
};4 _% [. s. Z# n3 Q0 Y7 X" _' x- N7 L: N
6 @# H/ V1 P3 D
template <>
' E5 y2 y% M6 ]0 Gclass RunFunctionTask<void> : public RunFunctionTaskBase<void>. p3 l$ ~0 u* g- p+ L
{
+ h# c- d3 `/ i7 Y3 g+ epublic:
( K8 F& w/ T3 x7 }1 t9 J void run()8 m6 i H8 N$ Q" f: E7 V6 T" j
{
* n4 c& M+ ]0 h8 W0 P7 \& D if (this->isCanceled()) {
3 H6 C/ I% _9 C7 O this->reportFinished();
! T3 y' O. z* O2 ]8 d# U8 M* O return;2 N3 q# G- T, l4 ^5 u0 i
}; B5 k/ `8 t, w
this->runFunctor();8 h# p D) e: b& Y, a( N
this->reportFinished();
- W3 h6 F. h$ ~! t, N2 r4 E }
4 A1 y( C5 |1 J3 D9 x};
1 m: A! C- L+ [. ?/ Y) @% ]
9 f2 k' A! d- _& Q: X7 i3 V} //namespace QtConcurrent
3 w' A: `8 R+ z" c
m) e" \5 n) D8 b' S+ P3 L#endif //qdoc4 \$ x5 v' x+ q) d: W: a' V9 h
+ c5 H4 E/ O# i* m' q
QT_END_NAMESPACE: F: i n. j6 I
QT_END_HEADER5 r+ p" g! ]! n# ?
, I: H' o% N7 J! `) J9 r
#endif // QT_NO_CONCURRENT
1 ^, K, T3 c% n. r7 l/ R, h( R% z, B
#endif* ^0 ]7 L8 L5 ^, `: F, C
* M! J2 M" }6 [0 {! g
|
|