|
|
我对syslink进行交叉编译到arm,但是出现如下错误:* M( {0 ~* q; m8 A( N& [, o
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'8 b) j" O# F( h4 }. `0 ^8 N
1 ] U( g* {$ @/ P* s; A. S) o这个头文件内容如下:
& p1 Y! |, k! y2 `! f#ifndef QTCONCURRENT_RUNBASE_H% N: K4 H7 K! W' T0 E
#define QTCONCURRENT_RUNBASE_H
7 D. |2 G- \9 a& T' y7 y3 Z3 x& L/ p. J4 w. O+ ?/ T6 ^4 b( d
#include <QtCore/qglobal.h>$ o5 E8 {$ \" ]; a4 J! M! e# }
% ^" q) p; k# h" t6 d#ifndef QT_NO_CONCURRENT
! D/ K" U+ }5 i" C% {; N
9 d8 k f2 K+ \& i#include <QtCore/qfuture.h>
2 Y3 Z0 o$ ]& L' Z- \8 I: X#include <QtCore/qrunnable.h>
5 @0 G: h% m. ?) j#include <QtCore/qthreadpool.h>
5 p1 P* E6 T5 [/ u9 f/ e7 ?
7 o$ U. Z) M) m. K9 I |/ HQT_BEGIN_HEADER- w+ t7 I3 S; ^7 G' r
QT_BEGIN_NAMESPACE9 p4 s" v4 ?' z" E) a4 ?
9 l5 q, r2 ?" l# Y+ B" {
QT_MODULE(Core)( @3 e! \; d* E9 j
" z1 u t) q1 G
#ifndef qdoc% N1 M( l& q, |
- C* A+ D6 n: [namespace QtConcurrent {6 L# a, O3 c* A; W* n2 M- ?
" F& W" X5 X8 Q: G8 ttemplate <typename T>
) o6 f% s1 k$ S* bstruct SelectSpecialization7 G* s7 F D, V
{
8 ~5 U! Z8 N* z4 u& N2 q+ l# e template <class Normal, class Void>
7 ~" x6 n" G) P: q0 t/ ~ struct Type { typedef Normal type; };5 b- Z1 {) E' d2 m
};
/ R) c2 |: D' a; E' o2 z: A8 @" g* v
template <>$ ~" h! |! z0 ?* y7 h7 j+ e
struct SelectSpecialization<void>
% B1 l; \6 C! Y E{) E9 X7 n1 t. X- i) K% N5 ^
template <class Normal, class Void>3 w# Q$ j+ c2 U8 ~" p
struct Type { typedef Void type; };
; W2 N% M: t( e9 e$ Y! O};8 R% F6 B+ x8 b# g2 t
! F1 c: u8 x& I* B( Stemplate <typename T>2 C3 p& K( s8 K/ U B6 q- H* c
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable7 r! C9 ?8 _$ o. i
{8 r% B. [/ m; u/ o/ a5 L: I) t+ ]
public:# v2 s. [0 J/ j5 R% G
QFuture<T> start()4 v! S" \% h! L" p' i4 G# ?
{0 s% S2 E; {, _
this->setRunnable(this);
4 g" m8 V6 q: i% x. z5 m this->reportStarted();( T( Z, {( V1 Q9 s& B
QFuture<T> future = this->future();
) u2 R' v6 _ ` @/ \ QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
+ D: B0 u5 ~/ u' C% L. R) o, p return future;
: s0 [9 H! B' O8 P5 c5 n }* {! X% X/ {3 H0 h
$ K# {! \# ]' i% k% y+ X& A0 g void run() {}# e% a! x+ N6 M9 ?; O7 `% o5 c; v
virtual void runFunctor() = 0;+ k0 z- E+ S1 r. ~( u: o
};) ]( d4 Y0 w9 C$ g9 O
6 ]: x- f0 M8 c5 T" htemplate <typename T>/ ]9 C7 @6 _; B& j) i
class RunFunctionTask : public RunFunctionTaskBase<T># j! z- [- m2 k1 d6 o4 W
{
2 T4 w6 [5 k3 q& Z2 a% g1 K" epublic:! S' {: b& H3 v$ X
void run()6 m) r2 N0 r* I
{4 ?2 k7 k0 M# k5 O4 j
if (this->isCanceled()) {
7 F9 q# b- D$ F+ Y) {: z this->reportFinished();- q% l2 U4 A: R' q* F2 M/ A
return;9 r. f }% ^0 x: \- W3 w& }
}
6 ]2 k. W/ A; O, Z$ n this->runFunctor();/ c. }& j0 X! x. Y: I
this->reportResult(result);5 W. O: F7 u1 ]; h
this->reportFinished();
2 v4 ~6 G T# B. v. E% `- S9 { }
- `0 e" _- M" B T result;
: K% A8 \: m+ a7 X4 H$ L- @& w};
# U* `' Z# Y' m% U/ d
8 k& L% c3 S0 L, _/ Ytemplate <>( U. n/ `- Q1 e. e( l
class RunFunctionTask<void> : public RunFunctionTaskBase<void>0 K" B% X/ M5 M7 z* a7 k7 _- g7 s1 E) f
{
3 ~: V% Q a. W Y9 q$ l9 bpublic:' S; s* n+ X# z! G0 a
void run()9 c" u3 Q, f8 f3 A4 \
{! Y& L; l( F5 k0 [* W+ f
if (this->isCanceled()) {' s- V+ A/ k; p! O
this->reportFinished();& F+ O# }6 O& g) u: @) `
return;2 `4 G. ~: P. m# e, }3 S
}7 N. [/ C6 l8 I3 R! Y8 @/ w
this->runFunctor();
! C" Y# }5 Z( L5 s this->reportFinished();
7 S, ?. V y. B$ w! f6 c }% H M) u, Z" q" A8 ^( H
};* s2 u) H0 L, s: W& f/ b( {8 J" \
9 m( m* u* ?- \; h ?2 |' |) P9 Q} //namespace QtConcurrent
5 L6 D# n, M$ t: r1 \1 f2 ]. V
! n' F9 J2 I: ?# Z#endif //qdoc
% G3 _0 b0 S! E) e# R. ^& }" n7 ^0 T
QT_END_NAMESPACE5 o1 _3 q- A- K
QT_END_HEADER
^/ T* D% L8 @/ \6 {; k2 G& c9 S
$ Q8 w- Y/ A8 K* k. u#endif // QT_NO_CONCURRENT
0 z8 H& S6 U' Z" Q6 z+ N* F
" [& @" W1 i( h% @0 ^#endif2 f% C# X) R* l( |
) j: I. [/ W4 y1 s% r" F |
|