|
|
我对syslink进行交叉编译到arm,但是出现如下错误:! P0 l9 r0 I; g# c( q8 C; m
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter' W! j% u- Q4 {8 O4 \0 e8 m
$ \! M7 M/ K7 Z4 q" I0 U这个头文件内容如下:
. V) g3 t4 C8 B" G3 P* S& ~, I, t#ifndef QTCONCURRENT_RUNBASE_H5 U/ L. g7 {$ n9 e4 ~
#define QTCONCURRENT_RUNBASE_H
5 O7 k( A1 x) S. \1 ]2 r @' @
) ^( `/ r! H8 R3 z#include <QtCore/qglobal.h>' ?! b9 d6 c3 j& g/ C C* \
6 }/ n9 |. A. G, H. y! v) {
#ifndef QT_NO_CONCURRENT6 x3 q- x! H7 V0 U$ r5 t: ?
. T4 ?5 f. y7 R/ {#include <QtCore/qfuture.h>
. }( S, {' t" O/ z#include <QtCore/qrunnable.h># C) |7 ?* j! _1 G( T
#include <QtCore/qthreadpool.h>
3 D( k* V+ j4 ?8 O) U7 }
* _7 R# h; _* F$ Y4 S& aQT_BEGIN_HEADER, F& K% l$ @7 v v8 }8 K! i# T$ _
QT_BEGIN_NAMESPACE
( x& u. Q- [" U& }; H- z4 @& T) E9 c+ l- Q0 `
QT_MODULE(Core)
, u3 o% s5 o* x9 i8 B, `+ K* M2 F0 a9 w% D: Q r8 P
#ifndef qdoc
, Q+ ]! Y/ ^" H# s7 Y( k" }$ P r3 T. l
namespace QtConcurrent {0 X4 c9 v# X; N" ^: G
1 [ _' Y/ a0 ?/ H1 r
template <typename T>4 l; P: r! f1 c
struct SelectSpecialization' j0 V# g( v0 I. X. \' M
{% [# f2 Z* |- r8 m7 r
template <class Normal, class Void>
, ^% K. I* @5 }' j% n$ u2 U6 M struct Type { typedef Normal type; };
* j& \- U: L! Y( c* ^};: A# S& {; J! T" Q4 J$ Z7 R0 g
7 ]- ?8 {) m: N$ R; n0 q& Otemplate <>
$ g; m T0 V; c: pstruct SelectSpecialization<void>
" Q& M" R E# J5 B D ]{4 t) _' S( {' o
template <class Normal, class Void>3 P! N8 U+ ]# [. Q4 p, E
struct Type { typedef Void type; };
' c: W) H0 Q6 U' x};+ W* D! J L; a" E, U
) {8 n, {1 v# q) Z
template <typename T>! n" s5 F9 t2 `* m& z
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
: i- i9 p$ f$ Z1 Y4 n{6 V0 R+ t' X7 U+ w" \
public:
, v6 q4 h0 _" Y+ E QFuture<T> start()& M$ e& O+ s; j- z: y
{/ D* ~; E8 A, [- s
this->setRunnable(this);) @3 b4 |8 j. W$ A }
this->reportStarted();
- |4 k6 v( U& q. o w8 i7 { QFuture<T> future = this->future();
e7 k4 m3 J3 r) d; @& `1 v QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
/ v$ P/ C% K/ y1 ~6 ~2 _2 l return future;! b2 A- l8 ^5 g1 o: U, T
}0 V; {5 n; i) ]
9 G0 K. z' X) P$ e2 X+ |- l void run() {}
( Y4 Q- v# U( ]( Z3 m! w virtual void runFunctor() = 0;4 i9 A+ @% H- I. c. H+ m, Q
};1 f$ l7 h, r9 u1 D0 y" w' s4 U: Z
- @% Z; W& h+ U+ O2 i; [9 r
template <typename T>' [ }7 o/ a# y2 o2 a/ k
class RunFunctionTask : public RunFunctionTaskBase<T>" t5 M7 G+ g: [, L) k6 X! _( ?
{
/ L- l4 c; i7 z* [9 F" \public: O6 c8 i \4 h8 m2 J
void run()
6 S! Q* o& Z: c& X# c; P {5 g1 d0 v/ v2 R1 ?
if (this->isCanceled()) {
/ `1 M* M# U. p6 r this->reportFinished();/ _" s7 ]' z6 _7 z$ y
return;
5 N+ ~/ w4 o' ` }
+ f3 v& Z* s3 G. Z/ n4 N4 }% P this->runFunctor();
! M- P& H$ B) b. N" H4 u& N this->reportResult(result);2 i4 e" F* K; _$ X6 t
this->reportFinished();
3 a* X2 H3 F8 u- N/ @# ]! s }* Q8 e/ w5 P: y9 ]8 S+ \
T result;* I9 f9 P; U7 K. w6 u; E
};; a# H0 d9 L/ ]) [9 s" R+ w- ]8 |
4 U! v0 B6 c! f4 j0 W, d+ V
template <>
$ p: {0 ?: g+ @6 {/ o ?4 ^" sclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
- @: L* h2 S- R( N8 p+ i{: K. e; ~7 `6 A/ H# W
public:
2 Z) o, ]% P6 C c4 j void run(): m. |5 [3 S% {- O Z/ v! n
{
& I2 q. ~* @6 T& e3 Z& Z v( W if (this->isCanceled()) {
0 d" h8 b9 d2 }; Y+ | this->reportFinished();
) o1 N: G) R/ I/ C$ K, N return;
3 V$ t- w- j% W) F. V( w- C }! B6 H) f- v, |! q% R9 y r
this->runFunctor();5 X+ d+ w! b( u/ U! A
this->reportFinished();
! M X. v8 ~. H# y; O+ q3 s4 } }+ n7 e, h, T8 q: m% ]8 f9 y# K
};
* v0 N* e: }- A: u! X2 X2 A0 u
" i/ o) U/ @, ?! |/ A} //namespace QtConcurrent7 r, s. r+ e. @0 ? [. A
) o% @' o4 ], W# x
#endif //qdoc
' V$ _& O$ Y( Y6 @$ e
; }! m, f* l I2 R" D Q. ZQT_END_NAMESPACE( q* u, g8 R% [4 r$ E5 \ W
QT_END_HEADER' w8 ]0 c H: Z: G7 g3 e* n: {* M5 O
& `5 h' R9 c" a" k) T1 ] K, z' Q
#endif // QT_NO_CONCURRENT
) i/ V0 W7 r! t. V1 D
' m. N1 h8 w( N3 @#endif( ~& o2 S, v1 v
% U* S0 q" \! Q- g
|
|