|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
) z2 j. e0 n; _' S/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
+ ~" }; k0 X# q0 i Y2 `6 q3 j3 h2 ?. A1 r+ x1 ]* @
这个头文件内容如下:
, x) j( h. u- {( r9 P- _$ J! F#ifndef QTCONCURRENT_RUNBASE_H
5 W# X% v% f' G8 W6 R#define QTCONCURRENT_RUNBASE_H
& n# F9 e+ N2 ]' E" T% W& D7 ?$ h( c3 e5 {
#include <QtCore/qglobal.h>
9 O& z5 ]; r" m
# q1 b# P8 d( N G3 p#ifndef QT_NO_CONCURRENT
3 V5 Q7 b& d3 W! i/ z A
! V8 L+ Q2 d. Y& I/ K# Y#include <QtCore/qfuture.h>) H8 {) f- j0 u7 [- @( H1 X
#include <QtCore/qrunnable.h>2 _( K* y& j: K$ R1 V
#include <QtCore/qthreadpool.h>9 G+ B9 o' u8 F" e
) N, R2 ]7 y: a( m9 m) VQT_BEGIN_HEADER
/ J6 ~# F3 [+ s6 r( eQT_BEGIN_NAMESPACE* `1 I4 n3 F+ s+ Z/ A4 N
P5 \/ c6 c, f" X
QT_MODULE(Core)5 D; p# w+ D$ p& A
9 \$ r \7 m& P* d% J#ifndef qdoc
" o% X8 a6 M( C0 o+ k" z
2 m, k3 P! ?' \: @namespace QtConcurrent {
+ H/ W9 u o6 ~1 s, u3 j
# k( r' s! c' ]template <typename T>
" q* j8 {, H( Y; Q0 Kstruct SelectSpecialization7 y8 r0 k0 `4 R# w: i
{" O1 g3 n u. k
template <class Normal, class Void>
5 d: j- R, |1 ^! [ struct Type { typedef Normal type; };$ ` O0 k- h, T* N7 r
};9 ^; ], f3 r0 T- D0 \, _* j* y5 [
1 X1 U/ c+ R8 s+ V, z2 H$ `8 D) `template <>
. J# ]5 U6 p# x* }struct SelectSpecialization<void>( G" A$ V) |! G; ^9 f8 r
{# s" K+ c- f7 Q1 _' a
template <class Normal, class Void>* i% ^5 @# w+ t$ k
struct Type { typedef Void type; };
. L9 z9 t: ?. ~" m};
0 a+ o* `2 K# c/ ]) ^, x' e% Y$ j1 B5 E: o" j, Y8 Q
template <typename T>' D. p0 u/ {. B! p2 N, Q! ?
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable' @' c" [; s6 r) Y9 T
{
! e4 t$ i/ z3 \public:% D8 o: I( b; n$ S+ S
QFuture<T> start()
, ~8 b: Q8 s2 O/ { {; y1 }: @& g9 s- n% a5 |
this->setRunnable(this);
' _' s4 u0 X3 A& P this->reportStarted();
' S8 K v# E' b V; y QFuture<T> future = this->future();
0 V/ r+ e1 b2 O7 V1 Q6 L( r QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
% T- l ^7 q* }% P return future;
2 v8 R' q L+ j. } }( }- `- { _# R: Z U% r
! j3 i5 j" V" F. H; _8 B; F
void run() {}
5 t+ r1 z0 t: i. f virtual void runFunctor() = 0;4 v! K, }" `5 i
}; G, Z: O6 |1 V; |8 ^2 T
3 o6 S! f2 P# N7 m" o/ _template <typename T>" ]; D5 A( q2 H; `- J
class RunFunctionTask : public RunFunctionTaskBase<T>5 Z; X" H0 d+ ]# `0 v3 q1 J L
{# t0 v3 H9 Q4 l
public:
3 H0 }3 R2 a, I: y void run(): Q. _ C" }! j4 ^
{
: l$ L( Q8 w) Z if (this->isCanceled()) {
4 H! ~1 M2 f S9 t this->reportFinished();
/ v% ~* F {0 i% h" t" G5 u: { return;
; r9 h; C0 r) B& j$ T }; P G+ s) g. e5 J' T
this->runFunctor();
$ C M: F: \0 }2 ]) j$ h7 ~0 _$ W this->reportResult(result);# [& ~0 t2 \6 U8 V
this->reportFinished();" C8 R1 o2 x4 A# s- k- w
}1 l6 I' G* }$ i. z, O8 z7 u+ i' Z
T result;
1 }: z% Q2 X( t( G' f0 O};
( ]) y2 {" C2 C6 p7 K9 l
( a% k H+ U. `% ytemplate <>8 R7 F0 s% D" D, h- h
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
* p' r5 S1 `3 N+ O( |0 ^{
9 F% T2 a% Q/ `: v5 j5 s* U+ Rpublic:
# M( s+ u# o3 {) x" H1 `% j void run()5 B9 w Z! P9 Y) u q
{& @$ r& ?1 q! i
if (this->isCanceled()) {
3 n7 M( ?8 M& V. x2 |3 j+ H/ O this->reportFinished();1 g. l+ @5 J7 a4 e
return;+ p* `/ m8 X# G5 x4 L4 Q
}, o2 A( k6 x" p
this->runFunctor();) o# R% E: Y) p
this->reportFinished();, z A- J2 Q9 ~& R- k
}
. X, K0 E5 l1 d};
/ ]' g9 A& G7 |6 a% V' f! C% S5 o. E1 V2 l
} //namespace QtConcurrent
: {8 j* ~# Q! e/ @' D [% g( A; b" {
8 T/ E# @# |: H#endif //qdoc
: n8 F2 T/ a5 n, f# h3 j
1 v3 _- s: D {& L. w* [8 VQT_END_NAMESPACE3 u; | y$ w& b8 p
QT_END_HEADER2 G# n5 ~" i7 ^$ ^
2 ?& U; ?+ }2 O4 G5 j: f#endif // QT_NO_CONCURRENT
2 A L' o! z( C' j
7 M4 f4 x4 Z' V9 ^1 `1 w/ h#endif: E8 a6 `4 A& n* \8 M5 m7 h7 ]9 x
0 R! |! O; v& `/ n5 e8 }, Y# c
|
|