|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
7 [7 [8 G: o0 U, j# X' B/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
8 h# p' G# s; c" ~
! N1 b! O7 W& t1 N这个头文件内容如下:
2 X% t0 f, z7 G#ifndef QTCONCURRENT_RUNBASE_H
m8 E* \5 ]0 ^0 ?* O#define QTCONCURRENT_RUNBASE_H9 H0 m7 O* o" K. S) }& @9 a9 m
+ W5 ~8 N& v4 }; T! @& e
#include <QtCore/qglobal.h>
# F' ?$ q" a5 x8 I9 H8 p8 c1 I; u
" x! I5 o* v" x* ~) R( I* U1 U#ifndef QT_NO_CONCURRENT
! A* I7 X, l3 I) ], \1 u. D
4 d4 w. e/ S d( B" ]#include <QtCore/qfuture.h>
: }) g' a. [( o& z( s- Y! T3 X$ k#include <QtCore/qrunnable.h>
2 h! y* U3 H- `3 h8 r g0 ?#include <QtCore/qthreadpool.h>" k7 F t9 S! j# ]* Q( g
* @3 T4 q; U: ?6 e+ ~) X, ?! \QT_BEGIN_HEADER4 z; @/ d/ ?3 U5 f
QT_BEGIN_NAMESPACE
/ v8 _; S% ^9 k, c5 o+ _: B
- @" ?# H) Y( \* \! t3 b/ b# oQT_MODULE(Core)
: T# n/ o0 z% e/ F* W: z. f
1 X& i) l+ J. i* h3 y/ Z0 w0 p" J#ifndef qdoc$ b2 A3 X p+ i% x/ y
4 x- {1 L+ b, ^% gnamespace QtConcurrent {
5 g' n' t7 a" a5 M& j" o% t5 M
1 u/ i" X0 j. s" V5 Z; d. x2 Itemplate <typename T>/ f6 [% o: B) n8 C9 ~, F) ]8 ?9 S- g; Y
struct SelectSpecialization) Z. |' |3 q$ d8 m" J
{
2 D, |9 B0 Q3 r! K1 `6 t template <class Normal, class Void>
; ]* M6 }6 w/ G. M struct Type { typedef Normal type; };% e0 M7 z% {4 v, E# [. G6 f$ o, i* f
};
. c1 Z( j$ y2 ~. I! l2 O$ O, Q* h) t9 }7 i
template <>
6 o) v" U# z9 a0 v! k: e& O+ estruct SelectSpecialization<void>; U: X4 R/ X7 K6 j% W
{- U5 W+ _: V y" T% @
template <class Normal, class Void>) S: ^4 n* c& d$ [1 C! F5 F& p! L
struct Type { typedef Void type; };
; q* b4 Q+ ~9 t8 j};4 [' ?1 y L9 r, {
h. M4 a$ ^% Y
template <typename T>; _( h4 {' C+ x8 [5 K4 t
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
2 ?, e9 M5 |7 x1 a3 p7 X) ^/ s# `0 y{( z0 F: z* j; {6 Q) X* U u6 q
public:
: h( g) ?" v6 H6 G1 Q QFuture<T> start()
6 C$ Q( K# X# X9 i. Z! E {
! _# o `; o$ m* Q: G* d: E this->setRunnable(this);
* Z) j" G5 K9 \% g( l1 g this->reportStarted();
* z p- F, }2 u4 m% B QFuture<T> future = this->future();3 Q% U/ E1 R% v' o M
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);/ j: @. Q5 F& d2 c0 w$ }& g3 O$ f @ D
return future;
L& |3 i# P( G( V1 K5 u5 i }
' Y% a! C$ o7 q: P; m* m: j$ c' P) V8 o/ [9 s# s" z# R8 p
void run() {}( I* f* `3 I! ~ J0 k% x* L
virtual void runFunctor() = 0;8 \0 w& X% O% C$ W0 @4 q' x l
};" [( t( r- ~1 `3 [
7 P9 v, Q5 X: |) l% e" ktemplate <typename T>. C( y& T' R3 h; k3 K7 ?" h
class RunFunctionTask : public RunFunctionTaskBase<T>
/ O4 S% s" H, T{8 @" K; C: D/ ~+ X* F" {
public:( @7 h; w a. H# T
void run()1 O' `: |; D. J8 q
{. ~5 e6 M' E! o3 L) ^
if (this->isCanceled()) {
1 f0 g( J+ m( b! k( \. } this->reportFinished();
4 K8 {% e' F6 z# P4 ^; z return;
; p5 c8 V4 F" g+ ` }
- S, Y! K z- h2 } ]' Z this->runFunctor();' [' U; y: U9 q3 i* v7 {. _1 u
this->reportResult(result);, O/ o- I! A) C! b& w
this->reportFinished();! L; t! [4 e) k0 ?! `1 M; ]4 U
}
& x' {/ G4 ^; X# p' Z T result;0 d& v, @" }; R0 L s6 ]7 {' \
};* v2 R& \* _& z
; U3 _4 v7 Z2 t3 F
template <>% E2 d5 p* Z' q. K3 {
class RunFunctionTask<void> : public RunFunctionTaskBase<void>% ^$ y2 y J0 Z: i' O" g+ E4 m8 N4 \- X
{
( u, |- P5 e: H. opublic:9 t7 }9 U/ `( {5 t4 U% C
void run()/ m0 Q. v. ?6 ?: a4 d
{) B7 ?, z7 O8 Z9 Q {3 x: m
if (this->isCanceled()) {
' s2 ~, o7 e4 Z& u5 C+ l4 |2 N* v this->reportFinished();
8 V& C2 s; y1 D! r8 Q return;
# X5 s; g9 Y& c }, a- M+ i4 q5 l( [& W3 `" `1 p3 x2 ~
this->runFunctor();8 t9 {. ]& u# Q4 k; n7 x% K9 k
this->reportFinished();/ Y, H+ G& g( Z7 @( S
}
% Z; t, s: Q X9 [, I% W" p7 v( \};9 ? {2 j# U+ a+ ~% `
4 Z+ G. r) D* H# }3 f} //namespace QtConcurrent1 h7 K# l1 [$ r% P
t' D4 B. \9 K5 z! ], w; }$ m#endif //qdoc
! T; L d( F$ P: ?: N9 O) S2 a Y; w9 C5 i3 F
QT_END_NAMESPACE
: X# X1 N" D' e2 w& s T, K% j) J+ aQT_END_HEADER
4 A* ^3 _! Z* D! A
1 b) V% C( q: C [1 c5 S#endif // QT_NO_CONCURRENT
5 h$ X, y' R* H
# K' S2 t# E6 l0 w! f* w#endif5 t6 ~/ g. Z7 r$ r' E
: C+ h- a$ ^9 \$ J, h. y
|
|