|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
. i" y( R+ ^/ L) |4 [, X/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
1 P6 e, w8 P. F, \9 l5 C
. p% \, a4 [" Z7 p" l这个头文件内容如下:! r' _" K* `4 Z5 N2 l [
#ifndef QTCONCURRENT_RUNBASE_H' y" c+ z+ p3 P3 N/ |) P1 j; X
#define QTCONCURRENT_RUNBASE_H! z5 c6 I" C' j. i' H& y0 q
. }9 A4 P. b N4 M4 `1 q
#include <QtCore/qglobal.h>
# z0 _* T. N9 J& ^3 n. \$ y. _. C" Z! K$ n
#ifndef QT_NO_CONCURRENT
8 L* M$ x: J+ J9 n
* Q, k5 F# H; y8 G( h#include <QtCore/qfuture.h>. ~- h0 L {! B/ F- Y
#include <QtCore/qrunnable.h>
5 g0 E0 C: ? v* |9 n, z4 b) S#include <QtCore/qthreadpool.h>& D& W/ }1 k6 m* Q
8 o$ e ?" q& e& T# T# X
QT_BEGIN_HEADER
" S0 S: ?( T0 {3 d$ o, OQT_BEGIN_NAMESPACE
- p0 w8 ]. b' p3 c! c5 ]9 ?2 b+ d5 y( B$ @+ _ g( K
QT_MODULE(Core) y% b7 T" u# ^. |" G
! P2 {5 }* Z& B: c! N# j
#ifndef qdoc5 @6 a" c" | v2 a- E$ M
0 Y# Z! {' N8 r& t, Rnamespace QtConcurrent {
4 @7 z3 s$ x1 R1 X# [
5 X" E9 h+ U) B+ h: v. x9 U& F* Rtemplate <typename T>6 x9 ?0 T5 F: W% i; N8 @ z
struct SelectSpecialization
2 ~/ l4 ]; Q3 ]# J% M7 l/ ?$ U{0 o# ^6 O# z' v( F9 \& l2 Z$ `& N
template <class Normal, class Void>7 }% k" j% N( l( @& C
struct Type { typedef Normal type; };
/ U" A2 t9 ` ~ w2 @( y$ W5 P5 u};
) p' a5 `9 T( U# y1 [9 Q, S" s; _' ~" v) i
template <>$ Z% C: l) ]* A. m" e9 c
struct SelectSpecialization<void>& i) I u) e& W* ~# R- o
{
& K1 s X8 r6 t: O template <class Normal, class Void>6 z$ z2 |" j# r" V9 `
struct Type { typedef Void type; };6 v$ f* J2 Q) [. R8 [
};9 e1 \1 [. C+ e) W! Y( [" s- }7 x4 t
1 V8 x* g. u2 Ftemplate <typename T>
( \7 @6 x/ J1 t, E8 B( ^class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable5 R8 t2 X) j+ {9 u4 v+ v1 }
{* ?: R' h- h1 t1 l+ f p
public:
9 E7 b- X# v4 \: V QFuture<T> start(). K# C8 n5 M0 B2 s C3 ?
{
" \! r0 y. }( G/ [+ E this->setRunnable(this);
1 n M, K! v! j0 [8 i- Y! L this->reportStarted();
; Q3 z% N) T6 [) f$ n2 H$ T7 p Q; N QFuture<T> future = this->future();* }0 d g2 T; S+ \
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
6 a; Z! p* b% g6 W# d- g return future;, O' O6 w6 o3 }3 l$ U+ @4 |
}$ N. U1 j" a& |' r4 |1 @
+ g- f6 U" r7 [9 t; A+ Y6 Z void run() {}
( D, b) ?) f& N virtual void runFunctor() = 0;
" C3 Y) D( g0 [. Y};+ `: p! y. Z! T( n- f) C- U) C
" i& l$ G/ W$ R' L: Ltemplate <typename T>/ {2 J; ?- l6 K* v, h7 b
class RunFunctionTask : public RunFunctionTaskBase<T>& n9 |8 r& ?4 z2 k- m. r4 A5 v
{
! @/ f( Z1 J( U0 ]* L7 mpublic:/ q) m. a' z; K; l# O
void run()8 M/ c7 ]+ P* ]$ k. J
{) i9 g: o B5 q3 ^. V* K2 ]
if (this->isCanceled()) {7 U8 o: h- F: L2 H9 p
this->reportFinished();6 [6 e$ J' n9 K. H% Y# C7 O2 ?
return;
, E9 p; k+ D! f2 t/ W* C* { }
0 [# u* N8 Q: C, M ?9 S6 h this->runFunctor();
/ V% s/ Y, u% B- d this->reportResult(result);8 J, g8 W1 g! P9 E2 D
this->reportFinished();
0 ]; v# E0 h- L. ^" ~ }4 }5 v* ~' g, R. h! S
T result;' G5 x- Y3 X0 t1 ^ w
};8 F/ S* v$ s% C6 D$ J5 o- G
& d3 v4 C. h8 |3 m+ [template <>; R8 e/ n+ @2 c
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
9 E! M. o, O) X& ^5 B{: Z: ^8 M9 T% L
public:- H/ g& d3 j- \" _. p( E" ~
void run(): A+ }; v8 v- [ C
{: q# M+ Y9 k7 k3 K* G* ]. Y6 O* ]
if (this->isCanceled()) {
% f: ]- N) v( j/ w7 @5 w) J this->reportFinished();
: b ~1 Y- F) N" a+ p0 q% Q) H0 z return;2 i- F4 U% S0 M3 u+ f) o% Q2 Q
}. J ?) ?; _( A+ X- i
this->runFunctor();
* d0 u- O2 w9 o$ Z' m( }2 Y this->reportFinished();
0 R* e7 ^- P) {8 ~- {0 F7 f! |% ` }
0 d. j) X l. V; T* g5 C};
9 D# c7 S0 T9 t a8 d' a' a1 }) a$ E) F o
} //namespace QtConcurrent
7 f# F+ N7 m. d; b$ B/ a/ d* I! a8 a9 L
#endif //qdoc' s. G. c& |+ n# m
* H5 x0 k2 Y% R4 z1 {QT_END_NAMESPACE
( R# H) p' T- n: l3 Y% s) AQT_END_HEADER" Q _) |( P0 S( ]- @
/ u5 E* U% q, x' C' w4 I
#endif // QT_NO_CONCURRENT
0 D% M, ]& v) e0 d/ O0 y8 ?% ^2 F$ D4 j* W/ Q4 Y: R
#endif
/ a& i0 K5 ~" x' O# U
4 {2 U: I& s6 U% L' z3 W" t, [ |
|