|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
* k" H5 s) `. P5 V# |" m/ u/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
* p2 ?8 L/ g8 K1 |# @9 G2 V
& A8 o8 `0 T) {+ B }9 J: I* {这个头文件内容如下:
+ D. o. A2 A& n @1 q) |0 q, d2 r#ifndef QTCONCURRENT_RUNBASE_H
" T4 l1 M2 g& W. E#define QTCONCURRENT_RUNBASE_H
1 Q9 K' Z: z% L! A
% e" c# N( |, i! e% ~#include <QtCore/qglobal.h>3 l7 \& i C: _( @5 ?6 ~6 S
- h0 I$ [$ \& i+ a! y
#ifndef QT_NO_CONCURRENT- y. Y, H( a4 b6 L* {0 n/ z7 T
9 L( {) N! n( h9 I0 h4 K
#include <QtCore/qfuture.h>
: {9 a9 b* a* p, ^6 P#include <QtCore/qrunnable.h># u) b9 F. d, r; h
#include <QtCore/qthreadpool.h>( M, d3 C( {8 ^8 W
6 q: m4 `: ~0 @' DQT_BEGIN_HEADER
. S: M* K. v& h, @: {7 ?: ~* zQT_BEGIN_NAMESPACE# O( F6 r+ m# K1 a% e8 ]
6 e4 G: p9 R! o @/ U2 i
QT_MODULE(Core)
3 h) x4 P" H7 M1 s
' [. n0 c+ Z9 T#ifndef qdoc
! q' H" U+ H& P6 G
9 b. S' m: n* Qnamespace QtConcurrent {, J: Q2 I7 \2 a; a. s4 O, e i5 w
; ~. F' S1 |) Q* N* j
template <typename T># _9 [& P! u$ g8 r
struct SelectSpecialization# i6 E) R3 X# t! |% o. Q
{
+ W9 ^- H% A4 |7 t* a/ Z template <class Normal, class Void>/ D( ]/ H" a: O) Y
struct Type { typedef Normal type; };5 A% ?6 V6 I$ p8 V
};* c! ]- { F8 R, K. o& o: r
" e: V* }; O1 N0 x5 Q
template <>) o" S2 J) ?9 h6 Z5 M( H
struct SelectSpecialization<void>
, a: X b& V/ p" f{
; j; \0 m. D: @9 Z) R! M; A template <class Normal, class Void>
- s% o7 G4 c/ ?1 u struct Type { typedef Void type; };7 u9 q N6 h8 a+ j0 N9 L# g/ [1 u
};
2 y& u2 `$ E- ~2 U
* h# u0 M7 {) S' J* ^3 ftemplate <typename T>
& G* p( s1 v7 I4 n9 V# q- Zclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable& A. D# s# j2 S, P; g5 d# O
{. B1 `# {! Y" W: V6 l6 j* T/ f
public:
( H! L* v! L0 ?3 k QFuture<T> start()
: T/ ^! s- \3 H2 w4 m" ~ {- A3 E Q0 x" X Z- a2 n. ]" h
this->setRunnable(this);
/ U/ J+ x" d3 @ this->reportStarted();
# M1 @4 ^" j9 g QFuture<T> future = this->future();
5 ^# W: c3 i4 ? QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
1 P$ R1 r% Q! T return future;) @4 E' k. O9 o
}
: i2 u' ~. i+ R9 d; @8 g
0 x1 f3 d& z' A. z5 ]$ \7 X void run() {}
7 b- O! F! U2 ~" X* \6 ~) n' V1 q B3 z virtual void runFunctor() = 0;; ]* ]+ n9 a/ W5 R% D2 C. \
};! U! s% X4 T' E. j( b- |
: A" o2 k6 x* P" z6 [template <typename T>2 j* N3 ?8 @* n9 _" _7 c
class RunFunctionTask : public RunFunctionTaskBase<T>
# @/ Y8 @0 M6 n; u{& k. ]( R0 i- r6 U
public:
2 }0 O2 T, p* e: M void run()
8 y1 B# w0 X6 y$ [) F) Z. F {
3 N d8 Z R8 c! M if (this->isCanceled()) {0 ?6 n! q, ]0 |5 X
this->reportFinished(); `/ O" A+ {/ b: R; z! E x
return;
6 N `" a- o5 A* |5 Q }
* g. [# C) l0 Y7 A this->runFunctor();; x( l3 ]# `! g5 Z# e5 T7 {; C
this->reportResult(result);
w: Z+ @' U$ O% |6 } this->reportFinished();
! o: W, I6 S) C" P+ ^% a C5 E" } } T9 F. `$ [0 T/ \
T result;7 S. j+ o4 ?; v
};, s4 b& t1 J7 P
J, d' M) i% d) k5 v% r, G
template <>
5 _& f3 P9 Q2 e Z! a, Vclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
1 ?, K, w7 ~; W) B, s0 p/ M/ I }{
$ ?7 B/ r& l( E% v2 Epublic:
/ E7 Y$ B- d$ B3 I0 B/ Q% Y void run()
' K3 n) d1 Z& U" F) I {
" K E Z3 g" }& q4 X if (this->isCanceled()) {- G) g5 v. {# n8 p; g
this->reportFinished();
: @& m7 r* B ~- @ h$ ? return;
; ?. t& b9 l( l, C- W# b: \0 K2 p }0 Z" k' Q% B- d9 L* o) D
this->runFunctor();
; X- b" U: |! G+ _$ @6 P this->reportFinished();
# ~$ K7 s* k# q }
' x0 a/ j6 G/ m* t8 F8 o& O& S};
7 z r6 W# p, B& p" y$ P# ~9 X
. `) i B# V( q0 }} //namespace QtConcurrent
2 y. G$ p. C, O( z9 i
0 e0 P9 H' n6 O* F#endif //qdoc
+ L: V" i/ v/ M6 s
$ Z( f2 f. g3 B7 w. Z: l6 ` [QT_END_NAMESPACE
+ W0 L1 W+ F) ?QT_END_HEADER
1 y0 @. e# n/ W# u6 }& l. g
% u+ C) U' m( m" J% r7 {6 F#endif // QT_NO_CONCURRENT# c' W! C% Q6 _3 c5 H' n4 s
8 z9 W1 {3 j5 T2 X7 [
#endif$ Q/ x& s9 |. A2 F
: q0 D# a7 n* Y7 h
|
|