|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
Q* Y- X3 V2 f6 d8 k- d/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'# S+ V8 E% S+ X, ]; U' F
, g, k5 n3 R, t3 X( r3 S
这个头文件内容如下:
0 _3 ?, q! s+ V; H, o' Z#ifndef QTCONCURRENT_RUNBASE_H
5 m& K+ b2 ?0 e' | X#define QTCONCURRENT_RUNBASE_H3 u- t. S# G7 S/ @
4 [1 p) F/ c. H, e3 s* U
#include <QtCore/qglobal.h>
+ D# k- E) b8 s' B$ E I
- D2 d0 }; ~; S7 @1 o! d6 ^#ifndef QT_NO_CONCURRENT
4 |* e% N! _4 `
7 W/ m) I! e. l: z1 Z2 S, x3 i* |$ R#include <QtCore/qfuture.h>
+ d* ]" c0 k3 O4 D; o#include <QtCore/qrunnable.h>$ X, ]& Y7 L& D8 K
#include <QtCore/qthreadpool.h>
$ m9 n; W4 `# H8 m8 H+ [" H0 j) [' f3 N3 ^
QT_BEGIN_HEADER+ c% F; c0 U" r- W
QT_BEGIN_NAMESPACE4 P; K+ {% Y( ]' }2 K
9 R* c4 v8 p2 S( i# yQT_MODULE(Core)
6 v7 w! ~7 ?$ q- k- T
# y0 n. R0 x8 H( n. H3 X* Q# t#ifndef qdoc
( ~6 `$ F$ j" l/ k& n
: M, f6 k3 T. H( I6 w. jnamespace QtConcurrent {/ y3 E0 ^' H j3 L
1 _' g0 K9 q# v4 G) ?) i: @template <typename T>5 }/ R' a* d% r* r c. e, n
struct SelectSpecialization6 V/ @+ G2 E! a
{
3 @% N$ J4 | H template <class Normal, class Void> \7 v/ X( K/ K
struct Type { typedef Normal type; };4 u( r" J6 [9 \3 F' f% S
}; j4 ^# q `$ r2 P& ]
/ i. f" |( W$ j8 q6 X- jtemplate <>2 S5 \1 }8 H6 u- A3 q& Y' |0 v1 k
struct SelectSpecialization<void>
; O, w& R! n2 c4 \6 C{" m" N4 x' L8 B; i
template <class Normal, class Void>. W* r% P, A* ~" W3 s8 v/ W
struct Type { typedef Void type; };( M x3 P. s9 p) _5 e+ e' d/ R
};
" u8 p3 V% L0 q7 ?) Q; h
" I- A3 |. ]5 h7 ]7 m) Wtemplate <typename T>
3 ? a( Q- L5 v5 L! Rclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable" {% q$ Y9 R9 r1 V' {
{
/ \# F Q0 ~ a2 Opublic:4 f+ w) ^ M6 @( ]; m1 Z) \/ `/ @6 _
QFuture<T> start()
$ G! _$ }; G; X% F {
* v3 N* ?- D0 c$ f; g) O this->setRunnable(this);/ P& h$ h# r/ i* N e% B) u' U. O
this->reportStarted();9 A4 ~, d- T# M: X0 {
QFuture<T> future = this->future(); _7 d8 m" g; X4 }
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);. k: I9 B8 Y) z
return future;
# v7 l' }+ O4 `9 A1 W }
( E3 Y- m- C7 s! E, G' e, m' U6 n3 q" B0 V. Q2 C
void run() {}0 |3 o) |5 B' q1 Y2 t( P
virtual void runFunctor() = 0;. h0 K6 W/ H! s9 M D
};- l+ B9 d+ I: ~- F/ X
: ^+ O& H- ]# w) H& [template <typename T>
" C7 Q# J0 o$ w4 W9 xclass RunFunctionTask : public RunFunctionTaskBase<T>
1 Q8 j4 T9 `; E8 q$ Q. E# _$ ^! ?{* e+ ~% V, R8 R$ p d! O: o
public: r" A! E' m! X" ^& _. ]
void run()
4 @7 E' U& B, ?. j5 m3 A6 y# x7 e {
: C) Z8 N3 q" [7 e0 K. C if (this->isCanceled()) {0 L0 e5 c$ T4 w' p4 C
this->reportFinished();+ e, H1 x' g2 r, d% `8 |. P
return;
$ T! L" c. a$ I4 Z, W }
, K5 w1 |+ Q" s0 H _9 ]3 y5 ]; D5 h this->runFunctor();2 Q) o% v: }! d, N+ K9 d
this->reportResult(result);
* p& M" h0 I! `5 b5 Q: X this->reportFinished();
( Q( D! v% b) P0 L3 { }3 D% a# u( K% U3 u5 a& D
T result;
0 l( M8 X9 L+ S9 b p};
) ^% x p/ Y- s0 \, ]3 N* H+ n# d* F% a, E" J4 `& b4 K9 Q
template <>
& [ D0 ^( R: @+ Jclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
- k6 o2 e* Q$ j4 s{$ g7 Z/ z$ c, `+ B$ f# @- W
public:6 J% Y& D- Z! U8 @- P) G: j
void run()
0 T, @! b, R- ^3 O* y {
; `: p& U& c9 k) W7 i( N; g if (this->isCanceled()) {
q" I. l1 A! L5 m, k this->reportFinished();! q/ i. Q6 y) ?/ o4 @8 s
return;2 k9 F1 X/ i* v, X# c& e$ V
}
. f! J W( d4 {6 \$ d: `8 d' b this->runFunctor();
- [5 c) `) A& I% ^+ x: B" f5 C this->reportFinished();* n: e3 t; w; o+ r5 Y' M7 N* W4 l
}
' n$ Z" Z# `3 l( t6 R8 u9 F$ v};
\, g- `3 G* k8 z Y
2 T) k5 L. z0 L! k} //namespace QtConcurrent% Y0 N9 n- c# z0 F, _( ^9 a
5 b' S! f* Q6 h/ c#endif //qdoc
0 Q. ?! I$ v1 B' A
2 |9 \7 F" X. d( YQT_END_NAMESPACE
* r; ], a/ |7 nQT_END_HEADER
7 I& s. x0 Z- d# S F8 n F9 O! M* L8 ^7 R2 b& ^' e3 |: C
#endif // QT_NO_CONCURRENT
. Q0 n# G& a- M0 P- B. p8 z# N+ E% j1 p: o$ P9 r
#endif
& E1 f6 w B0 n8 l
- d& W: h) d# G7 B" ~( O, [. G |
|