|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
! F8 A6 E1 k/ U" `2 t/ L* 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'
9 O O' b0 m: \( i9 f/ r
1 y5 b1 @6 V: m( \这个头文件内容如下:
5 A N# r8 H6 Q# I' c#ifndef QTCONCURRENT_RUNBASE_H- K7 L8 P; {# G7 `
#define QTCONCURRENT_RUNBASE_H
7 y, ^# Q. a& o- Q. N" n. j/ }0 Q5 |
#include <QtCore/qglobal.h>
9 W) _6 o7 `% _6 j1 c
/ Y r9 p& L7 {5 \/ h/ c#ifndef QT_NO_CONCURRENT
7 w+ I6 l* N+ q3 `! t9 y! b% @; S5 ~. V# {* k
#include <QtCore/qfuture.h>
% ] a4 n2 ^1 U2 \5 M) M8 x: @#include <QtCore/qrunnable.h>
6 N2 B, W8 \ l$ f#include <QtCore/qthreadpool.h>/ t! j+ x0 B6 s: @
. ]; t" K* ~- c4 N( A
QT_BEGIN_HEADER1 Z. v+ y9 \! A; ~- ]* d8 d
QT_BEGIN_NAMESPACE( f& P. T' {* L/ s6 B
. a7 v2 t0 ?- {% D0 w
QT_MODULE(Core)
|+ e6 v0 s2 I7 A' w" ]' P( q6 D, S' [+ }; L
#ifndef qdoc
, O% ]) F/ ], v) r- h. q
* Z1 l2 a- e! m' l$ o' n2 _namespace QtConcurrent {) P' E9 a. O8 {8 Q5 @$ v
. E1 e8 G' s7 _8 S. |9 a: C# C* i0 r9 L# ^template <typename T>
" q. u( T$ E8 m; estruct SelectSpecialization6 K2 d& @" u/ d4 i1 o8 g+ l
{
m- n* u9 Y: _8 u- k template <class Normal, class Void>
# n2 L9 A5 W' Y1 O struct Type { typedef Normal type; };
7 \7 A0 a, m6 q, G/ G1 v) [};. q6 ?& w! K8 F, D6 i( c2 U+ L0 o
Z9 I8 P" U. M7 I
template <>" A- \$ c# T& M9 I) O7 k
struct SelectSpecialization<void>; r; S2 g0 w( _( Z Y
{( O+ Q: G' L2 P4 U8 n
template <class Normal, class Void>/ c! U2 l5 d7 R( ~/ T3 g
struct Type { typedef Void type; };2 z. a/ Y3 W2 F: @
};: d8 k" j- y! f9 g5 a
/ ]9 K) Y3 D) u I+ U
template <typename T>6 I9 E' b: G( x) Z
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
3 g$ S/ @) ?, K4 a8 G{
. m7 f! e: Z; opublic:& S# h* K( F6 J
QFuture<T> start()$ z4 | w0 @& w' |( L
{& {9 t1 {, {! F A5 a: K8 t' h2 [
this->setRunnable(this);
2 s3 M+ f. M. k6 r/ x% ~ this->reportStarted();. E+ O J! K9 U$ c
QFuture<T> future = this->future();
% e1 J5 d L N QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
; F; Y# K( @! x8 T2 Q7 I+ ^) a0 ` return future;
. Q3 j3 {/ y/ F- q0 x+ g }* W: v, I! a. w. D0 w1 x
0 w" c% F" V+ Z0 t Q void run() {}& W [. w/ f+ K# r
virtual void runFunctor() = 0;
4 n0 \9 V& { e};. L( R4 }$ I! r0 w& A: x y
D. a: E& M/ l- a) ltemplate <typename T>' N* p0 B. \5 @3 w, V
class RunFunctionTask : public RunFunctionTaskBase<T>
2 `1 K+ I0 u1 \( v$ }6 R' K{7 [% ^, p, N, l2 f' u
public:
! E+ a% |7 S0 J; g" B2 H void run()
" I- G6 I8 \& Z( |8 L! u8 u, J {
c/ W. s4 z4 v# \5 X# S if (this->isCanceled()) {
1 e9 r! s. P4 e1 ^ this->reportFinished();; f" j: @' {( k, ?
return;
7 |; @* E* b4 ~ z( P5 [- ?6 b }
: y6 c+ \& j4 W4 f this->runFunctor();/ l- G" i7 P1 g: a0 p
this->reportResult(result);7 I3 k. p1 {3 f- N
this->reportFinished();
% v' @( S2 L- L* q) Y8 m }/ x6 F+ B* P4 v$ s7 b1 U9 g
T result;
1 t1 l1 q8 {4 g/ h};
% d$ h" T: T. p2 P
0 T3 u6 @2 ]' Vtemplate <>
- I2 o! s" J. n6 k* B. sclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
, d4 G5 ^* j. X9 j1 u; Z{
) }9 L, @9 R/ apublic:
5 c+ [) S) G3 E1 W! k7 I void run()3 Y+ n M8 g% [8 n4 G9 G
{/ y2 I$ d, T. G3 ?& T9 ^! M
if (this->isCanceled()) {
. j8 {' ~1 X' E( a this->reportFinished();+ F7 ^/ T' { K6 a
return;
: J7 d0 c7 u8 K. ] }, l% N! s% y/ o+ u
this->runFunctor();, P, a6 `1 h. z+ r0 Z: I+ S
this->reportFinished();
, K2 T* u7 ]: |, j0 N$ K! `# g& m }
, R( j b" X. Y4 c};( r8 D. g8 E) a( m+ C0 }# Y l
- N8 d. m# ~6 @; c. a6 T5 F} //namespace QtConcurrent' R- P. P% G6 K/ B$ d" `9 G
2 ?5 _, @1 M! r T* {
#endif //qdoc5 f' O# y0 U" W0 Z0 ~
. w) M. n; h+ v/ s* ~9 O
QT_END_NAMESPACE/ \2 r- _5 M0 {( o3 r
QT_END_HEADER
& d/ E7 M4 f* y! e1 Z! K, A
/ | i+ ?# d. L5 b8 E#endif // QT_NO_CONCURRENT$ K: I8 ]7 `! ]
; z! s3 j& N0 l/ {5 z: I#endif8 T! _# V* t: \. \. S
: x; A0 Z5 b6 W
|
|