|
|
我对syslink进行交叉编译到arm,但是出现如下错误:. \' V6 E7 L6 p* }* F4 L1 N7 m2 z
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'; j4 x x0 I1 s
4 X( k: i# C$ I# f7 c6 t' T- x- [2 h
这个头文件内容如下:
, G. r9 p7 {" @" ]8 b6 W3 \6 {#ifndef QTCONCURRENT_RUNBASE_H
" K- E3 g9 R* u3 e Q5 ?#define QTCONCURRENT_RUNBASE_H
/ A+ X" _9 ~+ [. z( j: ~! B* f
1 m7 g8 `* i2 u# o#include <QtCore/qglobal.h>
5 `# G8 s/ V% Q3 c( w" d
2 A# A# s% ~- A; N" I* ~#ifndef QT_NO_CONCURRENT
8 H2 J/ ?$ e3 b* i5 G5 N7 I) F
9 W# J) B, U0 V5 b- t#include <QtCore/qfuture.h>
! }8 v7 h( R; K4 }! Q# {2 o#include <QtCore/qrunnable.h>, |% v" [' U+ E6 @
#include <QtCore/qthreadpool.h>% ?1 I0 h. f! u5 K$ b1 F! i2 u9 ] D
9 q- i8 V9 K$ ?9 C3 |; @! ?
QT_BEGIN_HEADER5 F% k* A9 a$ m; _; p4 Z W2 p
QT_BEGIN_NAMESPACE
. \1 k, T# ~3 y, }& e0 s+ r! v. A2 ]- j
QT_MODULE(Core)- T* j1 `3 c1 R% L
" _# g# Y( T# l* K. X5 o#ifndef qdoc) J. [0 h4 ^7 V# ?$ B1 B1 V
9 j1 \8 ~# c, C% {$ N5 `. |
namespace QtConcurrent {
- J, g5 }, b% H5 y. y& o
" J; M! N4 W- R5 Jtemplate <typename T>' B! d# u/ n% s. @# @" M/ C
struct SelectSpecialization
9 \4 h3 m' P- e B( M{
$ G+ h/ X% H% J template <class Normal, class Void>
5 U% ]! Q% G5 @9 V/ j, i+ s/ U struct Type { typedef Normal type; };
7 m( U+ Z3 I9 r- D2 ~};3 S+ a) \4 x2 y2 B
, _; Q$ D, s0 {# A l0 M
template <>
0 K! w2 V7 e6 ]2 X. x3 w5 gstruct SelectSpecialization<void>' f" N- Q3 G6 M, ^% E. K# T) Y
{
& H5 v+ F1 w/ x, h template <class Normal, class Void>
' x" h- k. D, {( J6 E; ]; @ struct Type { typedef Void type; };
$ a9 W4 O0 z# f& x. }, F};
$ A' {5 ~# ^5 b! Y, i+ I
! _" `: ^" A3 e% n5 y& `template <typename T>
% R! O8 W8 K& i2 b/ ]$ b1 T9 C" fclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
3 y; y& M5 e/ O- Z+ |7 L! ?{3 k7 B! W4 E9 M6 f( F
public:1 C4 |4 H/ k/ N' ~( h& Z; r
QFuture<T> start(); {# T0 U0 n/ y+ J- H
{
5 H/ V. v5 b8 |6 K this->setRunnable(this);
" f( w. }' L( B4 G, ~2 Y& D6 N$ ~ this->reportStarted();
}( b6 V/ ^) l) L QFuture<T> future = this->future();
( w8 L$ y6 C4 o- R0 B6 ~ QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
$ o# z6 v, F2 [4 A return future;: ]2 f, e$ |7 p; e! u- V6 W+ E
} W7 y+ r9 i5 B
6 p/ e( K" S2 ~( D' _$ u- U
void run() {}
# H/ z1 i% a5 g k0 b% g virtual void runFunctor() = 0;* O" J/ y( ^4 Y% u9 a; ?! L
};! X8 V, k$ g% R# d3 ]
% X8 `5 y( d3 B, b* ttemplate <typename T>
) E7 c" j4 b6 q; C% w# `0 ?/ oclass RunFunctionTask : public RunFunctionTaskBase<T>6 U. J+ _9 |/ Q( Y- W
{# Z1 c9 j6 p& _* J' |
public:
6 ?( ^6 t+ D. F9 g% D" v void run()) g0 v1 ^+ v6 w2 Z% B( Y% o
{1 y. {) r4 S l C, o. q/ D
if (this->isCanceled()) {
8 Y. g8 z# O7 N+ w4 W this->reportFinished();# K E6 C% X X. ?5 D3 D
return;
! L1 ^ r* w5 f; g" s4 L; J }
: f$ }8 B6 ?3 G9 F' V this->runFunctor();5 k( W, X& E& ~
this->reportResult(result);
: Y$ e) E2 k5 w( L+ s0 p this->reportFinished();
. H' f/ _ A* z3 i2 P }
9 g4 Y' T0 i* t5 q T result;8 W( f! j- X) U9 p% `0 X5 L
};. R- s$ D: X, b
W0 `, z7 `: `template <>6 d' s2 m+ X& L: I+ z& \
class RunFunctionTask<void> : public RunFunctionTaskBase<void>
9 W" A0 y& z; [; u D: B3 u{& D9 n5 h( z3 A, S5 |/ g# ^
public:" o/ Q* N8 \: \' ]4 z+ t( T
void run() U+ L6 ~# b U5 d1 Z
{9 s! c0 i; `; Z& }2 o
if (this->isCanceled()) {/ B# z4 J* a# L& ?+ i( v
this->reportFinished();
+ _$ x( C) u2 I) X return;
+ J/ G( n4 P9 q. s/ W# H+ [- S; Y }
' D, N) q' u" S. S' v this->runFunctor();/ m0 D" C" T( e7 z. e9 g
this->reportFinished();* M) V8 Z5 M0 N( A# S t
}
( A( e6 d6 z+ ^% X: H};1 o4 Y5 p* V( E
; u; u8 O) S( R+ p0 B1 n: i} //namespace QtConcurrent
# }# E% U/ n7 v
/ U' n# X ]4 ?/ Y: G& ^; E4 Y#endif //qdoc! E1 y+ d) z& V l ?5 c& c( W
& e( u+ w) n2 q( JQT_END_NAMESPACE! v7 y& A4 u U( z7 q# Y
QT_END_HEADER: E! \3 h* Z- k; N, q9 R h4 }; D
3 I5 u+ M0 r3 `
#endif // QT_NO_CONCURRENT
4 W; O K8 [5 y9 j
5 x ]& `* v2 H/ |! @#endif
1 c) w" J4 ^% b6 `. F) ~/ f% A
$ x3 o9 y- b/ ^! Y9 X |
|