|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
. t" C- g" @0 V. p3 w' R- N/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'* i, S2 H9 m& N3 Z% ?/ q
7 Z; l5 f6 m# h/ [1 P) i/ }& U这个头文件内容如下:
7 }! p1 f0 z5 E8 [$ g/ r#ifndef QTCONCURRENT_RUNBASE_H
! I9 x, [9 X. r#define QTCONCURRENT_RUNBASE_H! c; K1 t( R, I, q$ o. {0 F. V) z
0 j2 t3 u+ x8 X$ T- x2 B#include <QtCore/qglobal.h>
) j7 Z! G/ T3 D0 T/ L4 B
9 t; _. n2 \, k3 Q, [4 w' l#ifndef QT_NO_CONCURRENT
$ S6 a* C. C4 l. h$ ]" r
: v7 x4 k+ _8 A0 ^' Q1 `$ J( }( ]; N#include <QtCore/qfuture.h>
/ |% C8 j3 o1 ^& a6 N1 J#include <QtCore/qrunnable.h>/ q; R$ E3 k0 Z/ A5 \
#include <QtCore/qthreadpool.h>. V& d& V& Z- f, P5 N, [
+ h/ A- y: w6 P( k: MQT_BEGIN_HEADER+ R/ @4 o8 R' @$ Z$ J; {5 G
QT_BEGIN_NAMESPACE
- O' l% i2 p5 R; o7 U0 I- \ I5 I, h# ~$ W" C5 R' a, k9 W0 M
QT_MODULE(Core)% e! q; `) s8 j* a
0 s* c7 d2 N/ X4 a" V& r) {, ]
#ifndef qdoc" J I; Q! M. s$ x( ^
. x5 w) A5 A* K% @6 c: ]! f( l
namespace QtConcurrent {5 o- m) H+ x% x/ F4 q, j
. _) A' H% n% J) ?1 J$ r3 h
template <typename T>% Z& k" s2 L8 j/ U+ X+ b8 W) p
struct SelectSpecialization4 O2 x8 n3 {0 M
{5 j1 o( S: U! ~% u
template <class Normal, class Void>
6 _9 g( O9 a" N3 L, Y struct Type { typedef Normal type; };/ \# J R3 z; o1 P. G
}; \/ A$ _( S7 ]" W) j% O: O5 x
P: t' q. `, U: S# R" stemplate <>+ N4 X) w. P2 s* r* q
struct SelectSpecialization<void>
% `7 W9 ~; s& t2 M( ~) f{% ], t. T2 t. V& _# L& X
template <class Normal, class Void>
( R* k$ n7 F& l5 H) L# ^ struct Type { typedef Void type; };
/ z& ^ K% y: H: b G" N- U};6 s! V7 y$ [9 d( o5 s- Q
2 w4 ~( P9 k% a- m' Q
template <typename T>: |& Z- N: M2 ~- \8 Y
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
! e# t. v( ?7 Z/ q: N5 \* b% Z# \8 ^8 V{0 ?" C! o% s. g& }; O
public:
3 a9 |9 y9 Q+ g5 V: i QFuture<T> start()
- m7 Z* H) Y+ e0 i' _8 F8 j; A {8 `" Y. C& W' d$ e
this->setRunnable(this);* b6 @+ A* B* V! y) L
this->reportStarted();
( S2 E9 I) E' _( D QFuture<T> future = this->future();
7 ?" V3 f P& r# v QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);" } O& }+ A, } g, U7 {
return future;
, v$ m% f* V2 I% w8 n4 }& I6 o# l }) `% o% U3 d- D9 S- k1 y1 L' `
2 ]- m0 j, ~4 h' r+ z7 Q% h* e
void run() {}: U7 ^ Z; ]& W/ Z* z
virtual void runFunctor() = 0;
2 N# w/ Y" K) V! P- |. N' ~. l};
r2 \: b# I `0 c/ `: y) Q! f! W+ W# i* g. V' q/ [. `) j- t5 A
template <typename T>* x- O1 h: d8 R" q# R
class RunFunctionTask : public RunFunctionTaskBase<T>
" q2 D$ u0 R8 a- u2 k{' S9 O! R) f& g1 n) J& k! C1 t& H
public:
1 D2 s- f/ f: Z3 c0 Y( p' i; r7 m void run()5 K2 y, k+ f% j( D6 V8 F( t& x
{
# K" F" p! f, z" L1 r: Y* k6 b if (this->isCanceled()) {
. l* K: D$ Z/ h( e3 N. c# n4 o this->reportFinished();0 I- x- L# e. X; A8 i S$ n2 ]
return;; ?9 L0 f! {" d e7 _' w% P
}
6 B( W' Q* N2 ]8 z# H this->runFunctor();
' E" a; A$ F' C' k8 k this->reportResult(result);
7 H% b5 i$ v5 b9 e this->reportFinished();
! T5 Q% {0 B' I }
5 v* H) @6 A* q T result;, ~/ }& d$ v- Y' E k
};
9 w% ^2 ` L* M5 y: I/ J5 z/ ~5 z" g8 l$ _( M8 v
template <>& ]" Y! D; _6 w& Q* p/ ^
class RunFunctionTask<void> : public RunFunctionTaskBase<void>8 g+ {# I0 h( Z8 y
{' ^" M* _+ N: b+ \4 e5 h
public:
5 g' l+ @% Q6 R void run()
" G3 A* [4 G0 } {+ E# p% d/ E, r- T b# `
if (this->isCanceled()) {
' F' l0 ^' I' I this->reportFinished();
' v! I5 r% v) s return;- v3 Y6 v7 }$ U- [
}
L+ { o0 G6 x, S% c8 y this->runFunctor();8 H5 ^2 @. d% o) T4 a6 P4 g
this->reportFinished();! ?/ r+ l4 L3 t2 x
}0 X5 l7 X1 I# P+ @6 x9 l+ a) ?
};
2 {* i8 R# P8 e
$ W; q- _0 j% m P} //namespace QtConcurrent- Y8 P8 E" W1 a8 H6 K4 L
! o5 d A5 G+ Y8 U0 [' ]' O#endif //qdoc
) H: X; A" m) B5 U/ l) W0 _& w, U' l) i& O+ y3 `6 s" `2 ~
QT_END_NAMESPACE
, Y' z }' R- W# g) b4 R5 j4 EQT_END_HEADER- k+ }* s9 [: @* s
" H' G% }( b, C8 T3 u" s! j! Z# E( g
#endif // QT_NO_CONCURRENT
) X4 J6 L1 `; Q2 t* v. @0 A
2 i7 M6 ^5 O* b, Y1 {- g#endif
6 C8 a0 [4 W" s- `$ c
- q( J0 W/ O, ]- ` |
|