|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
: s# V0 ?4 ^7 z7 F( `/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
* @/ i) s- o8 H* C/ l8 T) i3 \" L! Q g
这个头文件内容如下:( ?8 t5 Q0 {) s4 H3 w# l- `
#ifndef QTCONCURRENT_RUNBASE_H
$ @4 v/ m% E2 J: M#define QTCONCURRENT_RUNBASE_H4 Y) \4 Z" ~' U! c$ |0 z
0 [' A4 H5 f) L#include <QtCore/qglobal.h>1 c8 _# T: O u2 B1 O, v& y0 \
; {2 L. r5 D2 @0 ?# ?4 T" N! l#ifndef QT_NO_CONCURRENT A; m# E& H$ U' l" _, {* \
) d9 e- n! o3 ? n# ]0 P
#include <QtCore/qfuture.h>* Y0 l. d& d2 e0 O9 a2 G
#include <QtCore/qrunnable.h>' p h6 z5 R; Y X+ G/ [; t2 t
#include <QtCore/qthreadpool.h>0 ?9 ]3 g1 w) X- b- l% f
1 C0 F y* i7 {' e% b! B) I
QT_BEGIN_HEADER
* U% ~- q5 n2 p( ~QT_BEGIN_NAMESPACE
6 S0 e# _' b7 y x( O6 Q6 C( x# `4 n6 q) a) `. {% @8 X7 X
QT_MODULE(Core); h9 E0 F. n; u" w5 b' c2 x
' |: O1 Y% b! t2 C; R0 n, P* x#ifndef qdoc
2 C, {; M7 C/ A1 M+ F$ E' K& {' T' g- s( k: ~3 w$ l: T
namespace QtConcurrent {
- e8 P: s$ A6 W/ M3 c3 ` M& D7 ^) _) x% i- A
template <typename T>* [' v; j" P. q* y/ T$ o$ |- x' j
struct SelectSpecialization
& h+ J- @# ~" T$ z/ ]7 [+ j{; F$ }+ [, h5 B% z5 T: g9 X+ B1 ^
template <class Normal, class Void># Z- S# J$ h3 e) h1 y4 [
struct Type { typedef Normal type; };& L% l1 \, a" M3 B
};% l. `: j* ~9 F5 B- K: R+ K" ^$ k
) `6 T& t0 A0 U$ \, l/ ?7 ntemplate <>
1 N8 R$ _& ^1 T+ ustruct SelectSpecialization<void>
, B0 z# c! |4 Y) T{
% }. ?/ {% z% c4 @) H. p template <class Normal, class Void>9 D( m) \: }% f/ V" o
struct Type { typedef Void type; };6 V( |9 Q. h( C' Z
};* ?* W7 k: ^4 K: t5 J3 [7 c
, {8 l' |% j) ?9 ltemplate <typename T>
& N" ]: F- `: o1 t$ s" Y/ Kclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
5 [! ^* E8 v; v1 H0 u{6 M& V' q7 N9 y: C
public:6 n7 D, g$ i. N. P% t G
QFuture<T> start()
7 ^, U0 b# G# l* A! p6 f& K {/ I7 h$ W4 _( S
this->setRunnable(this);, s( j; Q( b3 s7 {/ @/ Y9 H
this->reportStarted();
4 |* i5 N' k3 C) S2 a& q! \/ D. m# v QFuture<T> future = this->future();3 [) K& C7 X! g
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
0 ~5 L3 e8 Z" @4 r return future;
( [* W- P; T5 T% e1 a0 `0 `8 { }
! }2 _0 m; s# S9 f$ T# f5 q
6 F% o% t) i' p$ q void run() {}4 h/ |8 A0 ]+ w J) b
virtual void runFunctor() = 0;
2 X( V: S) o' P) m};
! _5 V' @% `9 a( Q. j2 b- U
, b: w$ W7 E" F7 k x* k, y, Mtemplate <typename T>
: b- J& e9 r7 s H- \class RunFunctionTask : public RunFunctionTaskBase<T>% ?* k) ] h$ v6 x$ h$ G
{
! m1 h; u* W- P2 d* Ypublic:- `$ ^+ R: ^ P* c# i8 \" ]
void run()6 g: {6 B) Y" m6 O
{( P+ }' ~, `0 J! x+ C2 g- F
if (this->isCanceled()) {1 z9 {" Q/ l! w+ R3 i3 r; C
this->reportFinished();3 K, \* t |+ c. V6 L
return;
* O; ?6 Q* F4 T% ~& w4 x4 F9 \) w0 l- | }3 ^6 r& U* C" o* f2 E x
this->runFunctor();7 D8 R) X' c- X0 x& K$ R6 \
this->reportResult(result);) A! O! w+ r3 ^6 I7 g6 @
this->reportFinished();
: J% b: q% P; q% f }
5 U5 d, j# i& K. d T result;
4 W0 _7 K, i" c/ L# L! \ h2 D};' x# O; _3 v. @9 ^
. h9 O; m8 ~; K2 j1 X: N
template <>
( `* i% y: b0 Cclass RunFunctionTask<void> : public RunFunctionTaskBase<void>: f" M0 b z$ u
{
2 |0 C- x% B, h) Y4 ^public:
! `7 T" j1 b$ H# L# u void run()# h( N& X% t7 v. V% F- a
{9 x$ R5 m+ k% T" c$ N( Q. k7 z
if (this->isCanceled()) {
|5 s% q; ~4 c this->reportFinished();
; J, L8 [. H) J return;. T, v) G* G/ \" O# p
}# x* x9 Z* g% O, x" y
this->runFunctor();3 ?+ y: I: T& ~! V9 f3 e) A
this->reportFinished();
# |! Q2 K/ m; [( G8 g$ T }1 P7 A- W( Q N# a+ N M! Q
};
/ k7 F& z; o/ d% ~" c7 j
+ r: j& ?% ~" U0 i} //namespace QtConcurrent
9 ? }" h1 P& p! F3 V3 U+ O2 e# Q/ o# N0 k' W7 p, H
#endif //qdoc
7 S7 T' l# g7 h: [- c9 Q7 a
, X. |$ A1 n1 @3 n) ^* XQT_END_NAMESPACE
/ g6 k: W, ?; p/ cQT_END_HEADER6 ^5 j0 p. s S% @
; v6 n6 y7 E; f' }% R#endif // QT_NO_CONCURRENT
3 H! n# u- y1 r& H2 c8 d9 C! W( q/ _5 z$ W: ~. g5 U4 T
#endif
9 `" v( ]# F2 |" S- A, m
) u8 Z- x; ]. o5 g% D* @ |
|