|
|
我对syslink进行交叉编译到arm,但是出现如下错误:9 f1 p) u& b( u+ s+ J( O- {5 V1 C; w
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
1 Z! D2 q2 S# \+ ]* }, H! H
4 S! z* N/ i* Q9 k6 b& G这个头文件内容如下:
0 `, c1 |5 m0 b/ g) r* `#ifndef QTCONCURRENT_RUNBASE_H
}8 Y4 s) K; D$ B( }#define QTCONCURRENT_RUNBASE_H6 L) F8 i0 u; R
. a, Z1 f- S9 W+ j, v
#include <QtCore/qglobal.h>+ z9 f& s7 o; M, `
2 r& O! [ X/ Y7 T#ifndef QT_NO_CONCURRENT% W9 v% {& m! a/ X" R. }
+ ~6 A3 M) a* V! N; f, e
#include <QtCore/qfuture.h>/ w$ o3 j' x$ X. D: R) x5 n M
#include <QtCore/qrunnable.h>
1 G# r' p) J( B$ U#include <QtCore/qthreadpool.h>
0 {* Q7 y. V" W+ p
' ^, [; c {% R" tQT_BEGIN_HEADER
3 j3 y% m( D6 B! `QT_BEGIN_NAMESPACE
# p) A9 J$ t' m2 S) {: D+ V- W1 I( V- E6 }# N/ v
QT_MODULE(Core)' x, S: I# H& l; F \, F6 {
. [& d4 N" |% S0 W/ ?8 N- s- M) g
#ifndef qdoc5 D0 g' E5 r Y* S
, \7 Q- \3 L. W+ j; d; t! [
namespace QtConcurrent {
) N! v {4 ?1 i9 p7 d5 x' V5 g1 u, w* s( k- R
template <typename T>
; U h2 W8 }6 d7 ~$ ]( |struct SelectSpecialization! z3 W3 i# c) G# {: f- n
{
9 ~9 ]7 W$ S% c8 t template <class Normal, class Void>
" W% g$ d v- O; ] struct Type { typedef Normal type; };' J y; G7 j; w
};
! }1 K1 k; V& z5 G, W
1 ?0 ~- N' x' R: Ztemplate <>
. {# r) k* o9 i4 U& ~struct SelectSpecialization<void>) n3 B( `5 D$ X1 w6 ]& u& s
{
. P- O0 i5 ^3 d, } template <class Normal, class Void>& y+ p4 m9 I6 y! w$ {
struct Type { typedef Void type; };
3 f( ]- ?1 ?% y& U; T};5 e" `) ]8 B. H
, u( I2 A) [; m' e
template <typename T>' ^6 Q$ R5 C! s; C8 M* A6 l3 r
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable- B) j& c$ }5 L
{" C/ u, g) g O
public:6 e) N7 ?9 ^, _2 s% W
QFuture<T> start()
1 J0 m3 s7 a2 u& h {
! N7 B. P6 \2 r! {- H; ? this->setRunnable(this);
: m! z: c0 b' a this->reportStarted();+ R" _/ W9 k+ X7 p2 k& e
QFuture<T> future = this->future();* f+ K8 u4 f7 h8 ]1 G& f
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);% }) H" b* A. h
return future;; s6 Z+ ~2 U% u% s4 Q9 {
}2 _( o4 x' l: V( T
4 h7 c# Z; J3 m1 Z void run() {}
6 Q' S C5 ~. m7 F. ?. K' f virtual void runFunctor() = 0;
2 v: T& n! k, J0 b4 Y" v+ _5 s};
* Z1 `9 R$ Z, W6 c$ j
2 a; a, a d. d1 P) | C9 [template <typename T>
) B1 w3 c! e( k) g8 q1 r+ M6 T' y; Bclass RunFunctionTask : public RunFunctionTaskBase<T>
+ Q* {5 }' V9 |2 s9 j{4 i" m; l2 b# ]; n- o
public:& ~/ E9 x t( C& g$ }& m8 o: A( q' G X
void run()
8 A q" [, J/ }3 p* i {
/ _. n; z! |, ^" |, c, z if (this->isCanceled()) {
6 l2 ~% ?$ d, `- m this->reportFinished();( Q8 U7 k/ J8 I" Q
return;
/ q8 j' U+ _5 s) S4 b }7 Z N- E' x4 G1 Q
this->runFunctor();$ h- N$ s- l6 L0 Z+ q; c
this->reportResult(result);
- o" ^7 Y! i9 I this->reportFinished();; E7 h9 R6 R5 }$ \" K& j
}
" Z' d/ P9 x7 C! j4 o T result;
: ?. I2 d7 x& Z. ~};8 Y! ~3 x8 ?$ `4 g/ ]
6 u; p. G+ d5 ^, i E# k, \1 V' l
template <>( t' @* f& \! ]% G! P
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
/ @$ p1 U, q# m' y{+ a. `+ @0 m1 e c
public:
- P B3 s) x( \ void run()
2 R) Y9 d: s" u7 c3 O5 C {
5 Z- x. z' h6 |: a+ o0 A% A if (this->isCanceled()) {
8 [: \8 \7 }2 o/ ] this->reportFinished();
8 `: X: y5 U. A% }! m4 A9 d return;& O: L/ K! ]# S/ l6 [3 d; H
}
Q9 V- {7 A- [" @0 V this->runFunctor();
1 ^$ u7 q& P( _4 Q4 g7 v& A0 C3 ^+ |5 L this->reportFinished();
6 a8 [" M/ z/ [: v3 A& g }5 n) z1 c/ W! E1 o9 I2 O
};3 k$ y. R( x" y( X( K
1 Y/ r7 x0 V3 g0 |9 m" c
} //namespace QtConcurrent
4 o. |. ~2 {, }/ g+ ~0 a
+ m2 g F% a& J @. H& f#endif //qdoc6 U5 s, p7 G9 d6 o8 O
9 }" Z$ c! Z: z( J8 o- w: k
QT_END_NAMESPACE- z* O- f5 I# l' o; `5 U
QT_END_HEADER& s& \2 }; W7 f/ T2 x: ~0 }9 N) w
' }1 j& }$ K1 a" z#endif // QT_NO_CONCURRENT f8 A: a6 C3 ^4 j! z) X2 O0 j
8 `. n$ B9 K, h+ ~1 e- {9 w+ l* x! B* y#endif
$ R* w V3 m/ D) r1 a( N0 L7 V
/ s8 o- T5 j9 c# s7 V; v |
|