|
|
我对syslink进行交叉编译到arm,但是出现如下错误:+ O6 K; O* _- c2 ]* j2 }% ?4 c
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'5 q6 T" x& i+ w9 ^+ I1 r
& J; a7 v/ o, X. M这个头文件内容如下:
* P, c+ ^+ ]0 x0 T' [#ifndef QTCONCURRENT_RUNBASE_H
; s$ s0 p* t9 C# s" r6 P7 g#define QTCONCURRENT_RUNBASE_H
5 J+ z: I7 h& @+ w: z( M( A, U( i! W, U; h% F6 |6 B% l. x% ]' }& a% ~' W& _/ Z
#include <QtCore/qglobal.h>
8 N5 s; f- L1 l$ i% o# F6 I, {, {) _# b- ^$ W4 p2 }; y4 ^- C; R# x/ V) S
#ifndef QT_NO_CONCURRENT" d) V' w9 A' d( h
2 n0 ~! Y* q$ j# s7 k( ^; ^& l#include <QtCore/qfuture.h># _5 B- u8 V3 |, i9 n
#include <QtCore/qrunnable.h>5 \5 k9 g) T3 [8 T+ }
#include <QtCore/qthreadpool.h>5 H9 e' X- ?& Q& Q
7 D- N' X8 I f+ _3 D
QT_BEGIN_HEADER
; B4 e: ~4 Y# a/ W; eQT_BEGIN_NAMESPACE `' T: b! L' b/ X J
9 P, [; q- r' ]+ P/ OQT_MODULE(Core)
9 }, H" ?+ T0 I2 F# ~9 U$ d7 k4 M) ]* u
#ifndef qdoc- I# q, {6 A6 e
6 a* K2 I# H# Unamespace QtConcurrent {1 t) z3 c( a) c/ q
) i2 O9 O; {: ]& ?8 v9 ptemplate <typename T>
; `) O5 B, q5 n! rstruct SelectSpecialization& e$ ^% E0 T$ H. `- I
{
) O" g% u8 S+ w2 ] w, B# j6 h template <class Normal, class Void>
$ \# H) z. T4 K struct Type { typedef Normal type; };: r P0 @( Q n$ c* Z! N% W
};5 v1 v W/ Y8 E$ x, j0 m2 w0 z
; b& X% W A# }4 l7 ]2 \% S
template <>
% ]; G; m8 M. M5 bstruct SelectSpecialization<void>
* P$ v8 _" _( l8 E1 R1 p{
6 _7 Q3 s9 D5 R template <class Normal, class Void>
5 p( x0 W1 i' o( R9 O0 [& u struct Type { typedef Void type; };2 X9 E4 g8 F7 V
};
& `7 G( {: e0 }* \! k% D) C
( ]; m/ n" A3 `: y. K+ rtemplate <typename T>3 B5 ?* ]1 d- D2 F
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
, E5 K( c: p5 p/ i& e- w1 e V{
( W; M8 ?! ?8 W& c# `, o8 A! j" }public:
$ o3 ~* e5 ?3 @* [# Q QFuture<T> start()) t$ B5 T2 k8 d( P
{
& n% y. o* t8 o* U" d& a u% i4 r this->setRunnable(this);
8 N1 Z# U9 Q9 h" Q' t* w8 R) b this->reportStarted();# n6 Z$ [9 A# g9 Q# f3 \- W# i2 V
QFuture<T> future = this->future();
7 l/ ~5 U/ N e- u& g D QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);# O% A, Q5 k& B& n! _; u/ T# N
return future;
1 c% i+ }( Y( u, |7 k: `8 ]7 G }' ^+ F) a+ h( H- x5 N2 }* Q
5 {( e7 p4 p" ~9 e. U8 L4 ?" v
void run() {}
! |% q6 W, n" s% \ virtual void runFunctor() = 0;2 ?/ I. r' @( }# m L
};
! Q! K+ |2 V- U3 k2 M- [/ ?& G
- d4 s+ k* s# ]3 Q+ q6 L2 ?6 I9 atemplate <typename T>
7 M3 ]; S" P8 V' m4 ^+ C0 Mclass RunFunctionTask : public RunFunctionTaskBase<T>
# v3 n2 c! T+ t J6 L. ^/ ?{# J6 _: i" [- N
public:9 h" p. v$ f+ j
void run()% G$ a* O; h' j# d) I0 p1 ?2 {# G
{
" r7 M" C5 |# X+ W% i" l if (this->isCanceled()) { E! \3 W1 l' F/ P( k
this->reportFinished();
6 L8 t; ~0 L# i/ S! Q return;/ [0 n3 U9 m0 j$ i
}7 f8 O8 t, } |
this->runFunctor();
" {" `/ [4 R. R$ b this->reportResult(result);: ]1 Q: w) v2 F6 _
this->reportFinished();& d0 @& a, l3 L+ B o5 r
}' S6 u$ I# b& l7 o
T result;
+ n# i, }3 k- I" U: z% U, v4 L};
8 L+ G% Y$ }& l% ]0 {/ l" e
" u& c/ R8 k9 |5 `. S) etemplate <>
1 L- U! U) S( a% i6 P$ ?class RunFunctionTask<void> : public RunFunctionTaskBase<void>
& j9 |* s8 G5 y- K/ O{
, y* f# [8 e+ _: Vpublic:3 S* m# m+ A/ `5 s9 o4 T
void run()
/ X3 V% R) H- |4 i6 I& c {3 I: |$ z& \1 N( F0 \* a: j
if (this->isCanceled()) {
. q, ^0 a2 h$ N) N. E! A0 L4 C3 u* h this->reportFinished();0 m/ V7 V7 E9 ^3 {& v# r2 J- \
return;
; Y1 S. J- _! L) x4 @ }
6 r' q; ?# C& Y% P8 G this->runFunctor();
6 m) n$ C( q8 A+ B' Y4 H, z2 o$ G this->reportFinished();) ~5 s. f6 k. a/ ?
}
- f0 d6 b! f* E m};
) V* L6 q+ h9 H' h7 `' J3 h
' p3 w, U& I5 O4 A$ t" N} //namespace QtConcurrent1 |4 L7 \: z$ i' m
# }. F( T3 B2 [; k& C1 B4 F) B#endif //qdoc! P2 Y/ T4 l9 @2 M1 U# e
5 }. [' k& g x9 q0 u7 @) d
QT_END_NAMESPACE' t3 A- O; d# ~2 z, j; V! K
QT_END_HEADER
& C0 I: C4 Q! o0 R' r! S8 S% p6 _: l2 R+ J k6 R' h- _
#endif // QT_NO_CONCURRENT
: O/ L: |9 P8 ~. K# r/ E$ J% C- j3 o0 p
#endif
; |6 A7 r* j" A n
' U: d1 C2 _0 m( O6 e) [$ W* W, ~, L: b |
|