|
|
我对syslink进行交叉编译到arm,但是出现如下错误:% v- p# e9 J/ S* ?7 I" M6 \0 p
/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 ]. B# [' T) T: a+ t
5 Z% @, U* H T/ n& n
这个头文件内容如下:# N. O* U* l" f, E" t
#ifndef QTCONCURRENT_RUNBASE_H
9 ?$ `9 ^5 ?/ `#define QTCONCURRENT_RUNBASE_H
1 e6 W: V' Y \
. P/ h$ B- E" ~#include <QtCore/qglobal.h>
4 d7 |9 p8 s' }' e7 Z l& j+ z$ |* F B: p
#ifndef QT_NO_CONCURRENT; E% c2 Z# `* q$ s, n4 r2 n. `) l) |9 O
2 D/ I" r2 Q1 O#include <QtCore/qfuture.h>& |- ~ q \2 q% S6 x4 g% ]) i
#include <QtCore/qrunnable.h>
" N, Z% i k1 o3 G. ~#include <QtCore/qthreadpool.h>
- v1 a% U$ @, S4 _
# _% r9 l/ b$ ^6 Q8 vQT_BEGIN_HEADER- u" H0 R5 L9 k
QT_BEGIN_NAMESPACE! {/ U2 l5 ?) e, f* t, N \
$ O' ]1 a. G3 ~' i9 p- R: u; dQT_MODULE(Core)
5 ] o$ \; k: h: w# b4 t; G' l o6 [) U/ Y& l
#ifndef qdoc r* f5 m. D6 ?0 d
7 o1 L- q- C) q0 v0 G
namespace QtConcurrent {$ ]: @. u& b; l6 ~7 p
% o3 @% z- ?$ U$ Q5 `! H; L2 {template <typename T>; I! l$ z) l) A: W$ C7 L
struct SelectSpecialization
4 ~) N, z8 m9 X{, N& {) {) _8 f; L0 \" @# a2 W
template <class Normal, class Void>
5 W" m& p# M/ H9 g$ L3 ~ struct Type { typedef Normal type; };1 ^. a' [2 u7 c" \+ ~" T
};
; g# D0 f8 j" \1 F& r
5 {! G% {7 Y' O6 R/ k% M( wtemplate <>' p# a. j- i. X E; h; H, U- ]& J
struct SelectSpecialization<void>
. p- O2 {; S2 M' M; ^; j3 K{' [% n; x, S4 J- P% ?5 {, p1 [
template <class Normal, class Void>% H& c% o. s& t" a
struct Type { typedef Void type; }; g: G4 z% i8 V, J
};& V# {# Y! F V0 y- q' i) ] S7 [
3 }$ C7 B( G2 H, I$ U4 m8 Q
template <typename T>' O& ]; L, n: c. U+ k3 X
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
: M2 K5 k. j. e{
: a1 _) `5 d; Jpublic:
" V6 m. t/ ^+ h {2 n QFuture<T> start()
1 z- X5 G* r# f) Y3 t, q' l { N, i! [) J6 B( Q N6 o* q" a
this->setRunnable(this);, l9 I/ i* D r# m1 v
this->reportStarted();
( a0 { q1 X% _! Q, ?) x QFuture<T> future = this->future();( c+ w( A) @: y# Z6 i
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);; W+ Z# ]% R) p4 R, Y: b, D
return future;
+ i, B, Y6 A) u) X }" S3 h' s. }. h+ F- L) ]
' w" P$ k- G( U6 o( \- ^' m void run() {}% M5 J2 N7 }. |. C7 G& ^
virtual void runFunctor() = 0;
$ A5 Z0 y, ~- j3 t1 s0 F0 `* ~};
- |! f& z8 Q6 b6 `* v8 n
: V2 B1 b6 i) m7 ntemplate <typename T>
; E4 x4 \/ f3 [, r$ n3 T5 i/ Pclass RunFunctionTask : public RunFunctionTaskBase<T>* a5 C3 ~: ?' }; |2 b, y/ @
{
" D) J0 C7 f; f( V1 }# Zpublic:" d8 J. L( c( t
void run()
/ i0 {3 G6 e& M5 ^! o {! i" Q3 Q& C$ A2 A
if (this->isCanceled()) {
: n2 n2 \. S. h0 V @4 Z this->reportFinished();
' W: M2 G1 U: \6 u8 F! E return;
: u& Q$ l4 r8 h' k }$ i' C }5 w% }) a
this->runFunctor();
# G" |, H& |( F5 N this->reportResult(result);8 p: N( f; k% q8 V4 A) d2 i4 L
this->reportFinished();* k# {' x9 C3 W
}
& c$ r0 n: r& u, G) k) }1 T T result;9 z" H* y; o7 [/ R+ I7 w5 f
};
: h0 L6 G0 l+ D g
0 g2 k' ?7 F* I0 htemplate <>/ i# v, W( s9 y* @# t V
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
+ g2 P$ T' W# ~2 ?{3 F3 x7 D& |" g- ^% n* @$ n8 e
public:
2 c- C( m5 Q+ ~, T: _ void run()/ b) w. ^9 k& B2 U
{/ S5 \+ @7 k+ f/ p* e7 c
if (this->isCanceled()) {5 C& h" a$ M% l# s
this->reportFinished();9 F- T! m+ Y2 Y4 v' A+ `; v
return;7 V6 f( r+ P1 `7 ]. \6 {8 m
}
/ g0 Z' @# M& z" E% y( O this->runFunctor();
* f9 k u |. ~% E this->reportFinished();7 H; T( ], [+ [! H# h
}' ?/ A4 M' p! D. T. r# [/ g
};
' `4 o. w1 o% {8 |3 w
2 @' ~/ ]; h% d; z} //namespace QtConcurrent
% ]; u" ?$ U) {/ F) `
% Y) |8 {8 Z; W" s( F& a#endif //qdoc1 r3 i3 o: S# _
# H# V! i4 c+ B" E q
QT_END_NAMESPACE
( M8 V( ~$ T" h( `+ i+ _; R/ uQT_END_HEADER* }- R- L3 i6 M
2 u- o% r0 a( q- s' B, A#endif // QT_NO_CONCURRENT
8 A/ Y' l. h9 q7 n9 U* b, F8 z) _* g7 \# F7 {; _5 S* `/ _
#endif `, O. D2 |, u2 G! [% s6 N
6 x9 V$ ^! t; j4 u5 g |
|