|
|
我对syslink进行交叉编译到arm,但是出现如下错误:; {( T+ {' x4 `" W' Y2 ?+ R6 A
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'5 E* _* q6 U# B
2 e% V S+ s2 F) |6 q5 n1 }这个头文件内容如下:5 @" I% w& ^. T0 F8 O- B1 z: \% F# y
#ifndef QTCONCURRENT_RUNBASE_H6 N. U! c& P. o: i( E! W
#define QTCONCURRENT_RUNBASE_H
% X1 G. w i- e" z+ U$ b1 ~: @$ R4 @ M# y: _7 m7 m& A8 {
#include <QtCore/qglobal.h>; _! @% M/ t. w k2 X
9 S! G, ]* W2 ^3 D( h#ifndef QT_NO_CONCURRENT
2 d( `/ C% A* r- T$ ~3 O( z; F7 ^) m: C6 t* ~$ q
#include <QtCore/qfuture.h>- v5 E. [; M+ a4 f8 A' \9 N* y
#include <QtCore/qrunnable.h>; S% F/ j8 K! u/ Z
#include <QtCore/qthreadpool.h>
& _) q8 K/ ^7 S$ S) G% G* j+ M- e- g/ }/ }* u% \! r
QT_BEGIN_HEADER ?. G* y3 W3 I# G" O, L# R
QT_BEGIN_NAMESPACE9 ^" e! \0 K# ^/ _
) Z5 h0 D/ i( g: x- T4 e7 W$ Y( N8 I YQT_MODULE(Core)7 M B: @8 Y1 \0 D8 b
3 s+ ~ e, V8 F% U" S
#ifndef qdoc
$ H& p- T, P: y9 O- p) _- V" ]! \& {2 P; K
namespace QtConcurrent {
1 ~! D2 e% m7 w5 ~+ v& v. |$ U2 n/ X+ t* Y& l& N2 u
template <typename T>
6 I( q& p. D7 w8 V+ m/ B0 Dstruct SelectSpecialization' s; Q8 ^/ Q" M! S! V' s$ R
{
2 B; ?5 _. r! X8 k template <class Normal, class Void>
7 j9 r: E6 z+ _2 `' Z% n struct Type { typedef Normal type; };: O) t/ c& b5 k, Q
};* D5 S. L1 d: ~: O) j) f, p
2 U8 T% N) a4 Z( b
template <>
7 f- f5 T* k$ g! O) e0 Gstruct SelectSpecialization<void>( ~) G5 [% j* s! h, r+ |
{
0 D3 N- ~ j3 \/ E% N8 L1 z template <class Normal, class Void>2 @' @$ u) S- C3 u( T. y
struct Type { typedef Void type; };- f( k" m. U! h3 h/ z* N
};/ g1 E# K& h- [0 e2 d4 w( t
% w* I. O7 u$ {
template <typename T>
. c7 o! |1 o" p5 q7 s# M1 A Aclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
, u) V' k! w# z- c4 G( k. N N2 B{/ c" C p& g3 }% g/ E4 |" s
public:
( f# o: ^0 t# x! I* R6 Z QFuture<T> start()
2 R7 t2 K. G3 V2 L( |* P {6 d' }8 x0 w4 c2 X7 `
this->setRunnable(this);
4 C; Y8 t4 d1 u* b1 _ this->reportStarted();
7 v2 u: M1 p9 D; u9 s QFuture<T> future = this->future();
% R) u! o, D9 i5 ~! @ QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);3 D M, r5 J; Q, t5 }
return future;: p9 L$ j6 v0 J/ d) s& u
}
: o6 x4 R3 p4 _4 w1 F9 ?; g3 J( Y: z6 {
void run() {}
# v: k9 N1 a; i& Y virtual void runFunctor() = 0;
/ c( E v0 Y" |" w};8 C8 W1 P3 t/ i- @
4 E6 M# Z3 ^7 q2 p6 Ctemplate <typename T>" `0 }6 e9 e' J
class RunFunctionTask : public RunFunctionTaskBase<T>' W+ m0 k. T: ^7 r; X, r6 m7 I
{. w* o( T% b! }' Z) \5 d$ m+ {; y
public:
7 V& w" v7 |8 X void run()
! \7 W B7 H" `. t# I5 E {
, J1 l# h: J9 L" i* O7 u3 Z3 l if (this->isCanceled()) {
# {# B1 ^3 q- \( I+ q) S this->reportFinished();
; [1 w4 ^6 u+ P5 s return;9 M( k* T0 {, w p) w$ m
}
$ D5 y( P# W, [. J9 ~- Z this->runFunctor();
n5 V- K5 Z6 z this->reportResult(result);$ R" [/ y/ I0 p; p% @
this->reportFinished();
! \% `! i6 J- i2 D; B5 F }
6 v/ n) D; s, k$ l T result;
% Z; |4 Z# i) m1 Y};. M; g' J( W& `8 _$ Y0 Y# `
/ q+ ~: v% G# S7 f; S* f n3 W
template <>" d* A6 T7 I2 w$ a8 u( }- C
class RunFunctionTask<void> : public RunFunctionTaskBase<void>9 `2 n0 r7 v6 E
{& A+ w! u4 ]$ I) T
public:5 d5 n% W" B% A* z
void run()- J" f9 j8 Z, |) B
{* ?" R8 y" m5 N& r, ]1 D* |
if (this->isCanceled()) {5 ?% B# Y2 R% k! A4 W
this->reportFinished();
+ @1 \) I% _7 b+ Y, A return;
, v4 d% S8 r" B1 B, ? }* |/ b, }# p1 h" K
this->runFunctor();8 p9 E: R" a& y3 w8 y
this->reportFinished();
0 z4 U0 Q8 J4 K6 w* C }
q- e( f# \* @1 t! K7 T8 J4 a};7 ?4 ]1 E6 V x5 r9 y
0 ]/ d. M4 o5 c- F6 z} //namespace QtConcurrent9 b1 S- ]. K0 t6 I. V- N
' m0 J- O! K5 M: @& _#endif //qdoc9 I. Y# z$ G* ~2 G. v$ r
0 m9 Q" J4 C( ^+ _QT_END_NAMESPACE; O, P7 N, K. L& k
QT_END_HEADER
0 g1 b d1 y. Q3 D7 }* O' }3 c7 n* ^, }3 s, i' z8 i0 R& D8 S3 R
#endif // QT_NO_CONCURRENT
5 U/ p+ k' i+ d& t+ h' Q# ^
) e: P% h: L: F% F$ u2 Y" o, y6 h#endif
4 [) q, Z G% m% E* O: B2 ^/ b+ U! \; v( y# ~) p0 ?
|
|