|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
v" _- c3 b7 G( }- K/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'( w2 l4 W# D& {6 v2 i" p* F
# M- [, z7 l, Y+ r. a6 [- o7 D这个头文件内容如下:
# e3 K6 ~/ m1 M1 G8 U3 {- b#ifndef QTCONCURRENT_RUNBASE_H
; I, n/ Y% L/ E& p' z8 X#define QTCONCURRENT_RUNBASE_H7 q; d8 n: a7 m
: i6 h& [$ J b% E; ]
#include <QtCore/qglobal.h>
! _3 _: I% \$ `) E! u+ [
& t3 X6 g& y# Y#ifndef QT_NO_CONCURRENT3 X# |# V% X& I* {7 {
1 }( n) q0 u8 R8 I+ Y
#include <QtCore/qfuture.h>
6 s8 q) G( b. |3 z- }7 Q6 C- [8 \#include <QtCore/qrunnable.h>
: f' M$ u3 S6 E; A! F6 _* h7 M( Q#include <QtCore/qthreadpool.h>
- J+ z2 l4 X7 n: e6 f6 J! \6 i: |& d1 p& R
QT_BEGIN_HEADER
6 U$ F) P3 |/ d. `! FQT_BEGIN_NAMESPACE) V& I; O* G+ o8 @( U T
. J$ n- ^ k! L/ `
QT_MODULE(Core)& w0 [' d) [' i: X7 U" F
3 m) N" j$ s$ _5 Y8 S#ifndef qdoc1 [& W1 u7 T+ @5 C
- r" Y6 p' G; ^4 S! K) k: z7 C" `2 znamespace QtConcurrent {
+ m6 o# V& P- B/ Z( M
+ u9 z6 q3 k3 P- x/ `template <typename T>
_/ e5 B1 i3 S/ G4 ~struct SelectSpecialization
' I. [9 h2 ]! M& E! |/ Q) \7 L, ]{8 p5 |- M D+ v j' _1 V6 e& O8 K' U1 t
template <class Normal, class Void>, ]. U% Z, V+ ?
struct Type { typedef Normal type; };+ N& r) } U! C9 L) w
};& {. f( i4 s1 D+ b; D# _
) @# x3 s$ S! ~1 J
template <>
: _" m6 D. s) \# [struct SelectSpecialization<void>1 e+ M: x$ k* I
{
4 z1 P) `. o) o- E7 o- z8 T" p: Y template <class Normal, class Void>2 S2 ~# r/ f4 z( q
struct Type { typedef Void type; };$ |& W% B/ a0 t$ Q3 _
};
& d3 G+ v i1 m3 u& m
4 B0 v ?) ]) |7 [5 U/ Wtemplate <typename T>
b1 J' G0 B; zclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable% Z" M, `! U8 F6 Y; Y
{
" l3 a" ^; ?5 S- n. D* ^* i2 opublic:
( x8 w& N3 ?1 a QFuture<T> start()
- f& e9 v7 r/ {7 U3 B e1 C {
# s5 ?! h* i/ i5 t7 B- f this->setRunnable(this);
! [/ y7 B+ b2 P) m4 j! U. r this->reportStarted();
$ p% ^* n& P! h) {( P. l QFuture<T> future = this->future();( `$ F1 m, L+ ?3 y* i8 c& f- @
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
2 h N2 `+ }( ?4 R return future;; ?% Y' ^" Z( L6 s" O
}
7 S+ u1 i* k; A
- s: v& ]% b1 T9 | void run() {}. `9 ]6 w) c% G
virtual void runFunctor() = 0;5 w% o# R |3 t* u, D0 l
};
1 E i( g( d: X- b+ ]2 v, @2 T' s3 u: g
& m2 I% h! ]' Vtemplate <typename T>7 G, z& D2 E; j- {
class RunFunctionTask : public RunFunctionTaskBase<T>
% @6 F1 o: c) Q$ x{
& s% f1 [6 ^8 W" vpublic:7 I' ~4 F" h' U
void run()
, r# j4 H& ~" v2 S {
# X8 d. a9 z/ X& R if (this->isCanceled()) {- [2 Q5 C! z$ F2 x8 ]4 c9 g8 E
this->reportFinished();
& B b' r5 B# A; n return;! [2 k% \2 }' J: R
}
3 x' ^- m/ Z- t% e/ E+ \+ v this->runFunctor();
4 c# a* `: [) e, L* t this->reportResult(result);6 Y6 ^( u- t! `! I' q
this->reportFinished();+ c+ ]5 H# p9 V' w* G% P' T+ L
}/ _+ T s- m! i' v- _ @& I; W
T result;
0 K$ D# m# @* W* x, p; h' `};& V' U j/ @( O: h' K2 p& e
! t7 V; l5 L v' v% B% e& U
template <>% E1 q4 E" O+ |! B3 P
class RunFunctionTask<void> : public RunFunctionTaskBase<void>! j. ^, o" Q% W4 E2 c
{
: t" @6 U9 D3 J# e1 Upublic:. A! ?) \- o4 t
void run()4 _! r6 B3 z; V {. f! N
{
1 ]4 a3 }& J9 f( b! Z3 C' z if (this->isCanceled()) {7 _8 E( M2 G7 ^
this->reportFinished();" R$ D* }; x: @# b3 a' @* U
return;
# \& R/ q8 v7 L i! W }
9 i" F/ z& w/ N& Y, \. w* A% ~ this->runFunctor();, O/ a$ g* w9 r$ N9 T+ L& P2 _& L
this->reportFinished();
7 n2 I/ w5 a# E2 m& h }
# z# A; D$ C Z C6 Y3 h};
4 `5 C& L& b! ^( ~" M: J
1 s: u" F2 r. X: k; g} //namespace QtConcurrent1 i" p' s% n6 M5 L0 H7 O: x
3 h2 m0 g: T/ i* A
#endif //qdoc; Q- v+ ? J# t3 Q' S* d3 G* @0 U
5 D$ B% y; {' s K6 aQT_END_NAMESPACE
9 K$ I3 G x' e- ?! fQT_END_HEADER; [8 b* V9 p/ D% O; v0 h
+ s! j. y. {5 }* ]1 u5 R @( X+ ?#endif // QT_NO_CONCURRENT2 ~5 t; }! A8 Y4 e# x( t) [
4 K1 {$ ~" N, S& a( i$ \% \
#endif
7 M+ G9 |: ?7 \2 e2 q2 s
( ^$ U5 z- {& \# T. Z% B T% E |
|