|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
& U% ^; i- s( x1 _# X- F+ V$ V/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
0 k2 V5 r1 Z& l, k& B' Q0 A. _% w7 ~5 F1 m4 F( V; c. k& N
这个头文件内容如下:
, E! E/ i) o' H#ifndef QTCONCURRENT_RUNBASE_H# d1 R0 ]# R3 @$ f9 w
#define QTCONCURRENT_RUNBASE_H
+ _$ T- T8 T" w @
; ^5 m0 k2 c% m#include <QtCore/qglobal.h>6 Q0 w2 a5 E1 @" l' k
( Q/ q# k c& n. L
#ifndef QT_NO_CONCURRENT5 i! p |; u6 T+ q0 i$ ^2 L
, ], u0 C' ?. c/ B2 R
#include <QtCore/qfuture.h>
# w& t0 V1 b; C" J% T# r. C$ v8 n#include <QtCore/qrunnable.h>
! S! T: m. L0 |( {#include <QtCore/qthreadpool.h>4 S9 |; ]: }6 c- N1 Z: Y! {( f9 L; R
) R0 J1 _; _3 X
QT_BEGIN_HEADER
# [0 d5 J7 r4 Q# }8 Y1 {* AQT_BEGIN_NAMESPACE1 m" V0 w# t6 Z a
6 s M# ~$ Z! L' ]1 |* \8 d
QT_MODULE(Core)
/ c! n! l9 [1 x1 V1 M& ^; @" b4 q! `* L& ]5 M, J- l
#ifndef qdoc
; |/ |% ^ d+ k( v" C1 s, q/ N. w% V
namespace QtConcurrent {
9 P" Q5 W* z/ l7 @
* v+ J% |/ f# qtemplate <typename T>
2 l7 h5 [! B8 q2 nstruct SelectSpecialization( r7 g3 P2 k. s
{. d7 p# t, ~- L# R8 n2 H' v9 c$ u+ S
template <class Normal, class Void>
) ^. k! V: N/ K J5 L5 ] struct Type { typedef Normal type; };! P" y/ P" W: p) ` W- @
};. ~* _* O) X# y6 o4 o
5 R5 w' J+ g; R/ m2 G. S1 u
template <>
7 |2 T& u/ ~# E Bstruct SelectSpecialization<void>
& D* [: }7 g# @; g- H3 [, l' T! A+ N{
4 N6 i8 [* `) X9 m3 ~ template <class Normal, class Void>" j( G* J" U- R" J/ L
struct Type { typedef Void type; };
3 L9 I$ L3 Z* W( J7 [, d( _! i};
+ j3 w, q) j5 Q& w/ ~7 b
# A* P9 J8 G5 B1 ^% T+ n9 }template <typename T>
" B* X" I6 M3 D1 u: j! i" w( fclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
1 p5 O6 [- T6 u- Z8 y: O{
. b5 ~8 k1 J, b' {6 j8 n1 I( Vpublic:
! t' e8 U+ S$ F, K; ?* E QFuture<T> start()
7 d R6 P/ @5 {% O {
; a# {1 S4 L* w this->setRunnable(this);- ~& T8 v# n0 c+ E) L) C7 j' l1 J
this->reportStarted();
1 X* J3 z' u4 q4 s; K- Q QFuture<T> future = this->future();
$ _( ]9 T. s3 h; U, o6 P QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
' L( Y( X$ G+ g+ }1 M0 k" b return future;
" K, T5 p6 E+ s* M8 ]% H Z6 d* U }
+ P. A/ U3 z/ C A
. I) D. l% v; M" J7 F2 y void run() {}# u& c" {' f7 x4 h; U3 I+ }
virtual void runFunctor() = 0;. t% H3 m+ W& o! ?
};
7 c/ r+ d& M" j$ ~: @8 a2 w" o/ u2 o8 H3 Q: p9 g8 k! [
template <typename T>1 ~9 C4 |7 c J4 `
class RunFunctionTask : public RunFunctionTaskBase<T>
: @( T* C8 b' y2 O. s4 a0 g: Q' [{
( y1 f. A# ]5 N( g# r# C+ upublic:* I1 n0 p% B6 @4 k6 K) \, i
void run()5 z9 i7 P* S6 B+ _
{/ p0 P6 _1 q. W- [% z C
if (this->isCanceled()) {+ b/ [7 J$ Q/ G" C& F- p
this->reportFinished();
) ~$ T4 a: ]& M+ C! j- D1 ~ return;( w& P3 n7 x! j% B1 C# E
}
6 @8 S4 c" p; U s- H" j this->runFunctor();. P* t7 q0 C! R. {) K
this->reportResult(result);3 q: D+ l8 W' K8 k5 D1 p2 i2 g6 J
this->reportFinished();
0 S Q! U8 }8 _; H$ r3 F) E }
# q& [1 s; b+ _# P, h T result;
{- A/ G f7 K# K6 X+ d& n. e+ @4 H};/ E6 L! k4 ]. @$ ?" K# @
. H- w+ M5 h! @# x1 |7 etemplate <>! ~! L* n' I9 y) E; H. N
class RunFunctionTask<void> : public RunFunctionTaskBase<void>1 O6 h; q# P0 q" \* I* G
{
! w& H: w3 n4 b& p0 I5 Z6 C- Ipublic:
+ p8 o1 q; I/ ^6 `2 L8 o# y5 b void run()
0 P3 M; C5 W. L" B7 Q" q {
' V8 ~* ?/ f# P; a0 A9 B if (this->isCanceled()) {) }6 {) M, u& g. M
this->reportFinished();
4 z# R) [8 P, S! O- x& g return;
( e( D T; Y+ t0 z. Z7 l }2 k* b. ]1 f4 E+ \0 H% G7 [
this->runFunctor();
7 v* Z) v; |8 a! b+ l this->reportFinished();
" C5 N: m K+ H& S, B }" V( |$ q( l. c! v% K: R4 c; r
};
7 o; M# G' |! O+ t4 L+ a9 {2 j! d
- O7 C1 G, b2 ]} //namespace QtConcurrent
@- ] j* p0 o- w1 X% B l/ n/ s2 O1 x) E4 v5 M9 k
#endif //qdoc
; ~9 q, L& F* M% O% l9 ^
5 j, c8 `9 ^ mQT_END_NAMESPACE
: `: p9 F( k7 j5 wQT_END_HEADER
7 B, p" d; b* }7 T' q: F' j7 r M' g
#endif // QT_NO_CONCURRENT t1 K" e" f8 L" R1 N6 J
9 A9 @- w9 G: e+ |3 [/ V. G3 M8 y3 ]#endif y/ p4 e9 L: u+ B0 ^
- p1 Z: E9 Q" ?
|
|