|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
( v: m4 d! h; O/ M# 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'- ? i3 T+ x/ k% l# t/ w
" i4 Y3 ?$ X; U
这个头文件内容如下:7 v$ @& W1 v% n# T4 U+ K* ]" Z. z
#ifndef QTCONCURRENT_RUNBASE_H
. N. W/ W$ p# E6 Q# d/ Y#define QTCONCURRENT_RUNBASE_H- S [7 x- V3 f
( E: r/ F& u/ M7 ^1 |#include <QtCore/qglobal.h>
6 e* z) \7 e0 F
$ d4 M Q7 F, }. P+ ^#ifndef QT_NO_CONCURRENT
/ c. {+ n2 |% M: T* F# L2 S. q7 D! b% @0 n: j/ f9 J
#include <QtCore/qfuture.h>
B* `! k. O* L3 B' N#include <QtCore/qrunnable.h>0 j" k: e$ A1 e: ~3 e" `. P2 \( q
#include <QtCore/qthreadpool.h>6 x* n% G7 I5 s9 f; l3 E: m
, U$ U9 [/ E+ I6 p
QT_BEGIN_HEADER: J9 a$ j! m. ^/ w" z% z
QT_BEGIN_NAMESPACE! P0 V& ?6 D3 E4 C
; \% ^3 Y0 T, q. ^1 o1 s
QT_MODULE(Core)
$ I. i9 l+ Q) H, d) E) ]- {( {: M( A6 a! ]) p( D8 ?
#ifndef qdoc6 O; ^! C+ _# [2 H. ?
& G& L6 t' R+ fnamespace QtConcurrent {. K6 ]$ h I! ~: Z+ R8 j( V* l7 m1 w
3 R* ~% U9 a; t) h/ Ztemplate <typename T>7 R- B' [9 H8 M/ R a9 c; v1 Y! c
struct SelectSpecialization" u; ~$ [. F/ \0 d
{+ B G! Q0 ]9 X0 S. H0 {
template <class Normal, class Void> o4 M, U7 F( J& r8 |4 ^
struct Type { typedef Normal type; };- N' d3 a" s2 v" z
};' `) h) i1 U0 m3 |# E( g. p
" D, S. f( Y2 r$ r% R! `) \) Q" Btemplate <>* Q. U4 B% A3 ]
struct SelectSpecialization<void>2 g8 I4 S' R+ N% { `; b3 Q; F
{7 R2 l- ~! |; J+ o1 l
template <class Normal, class Void>
. `4 D6 E& o5 y8 n struct Type { typedef Void type; };
' l; b( F' J! v, z ], ]! R};! Z. w8 D8 o4 H) S9 `
6 ~) ^5 v/ t1 ? W% d7 t) ?
template <typename T>0 g2 h- c: _- M* \
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable( T4 g" f$ I% p: v; ~6 ~
{6 j/ z0 M8 k0 b
public:) Z0 H/ ]* C5 u4 h5 W6 k0 M1 v# `' l
QFuture<T> start(); Y9 h! q* `9 l/ z( `/ {) \* ?+ C' I
{0 _7 M) v5 K6 g6 Q- d4 i/ M4 R5 m
this->setRunnable(this);
3 X+ @' @* }, f6 W this->reportStarted();! j7 x. k I* J# J3 H
QFuture<T> future = this->future();
$ n* K& }1 k/ ]5 x& l+ x W QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
1 ~9 X9 @/ x0 Q9 i; Y2 `- u return future;
: ^, W8 s @: T! L; ~! B }& J O1 F2 u5 [+ a0 t6 }- ^
/ @4 R4 i0 l, m* r7 O, j
void run() {}+ A- x1 _4 \9 E0 ?/ z& N8 b2 C. w
virtual void runFunctor() = 0;: }0 u! e6 c6 z
};: W* M4 l' q# Q' G# `) s8 D; j( j* I
1 j3 q1 o. D: k* f& ]+ ]% w4 etemplate <typename T>- r+ o- I" N9 y$ g
class RunFunctionTask : public RunFunctionTaskBase<T>5 j y5 z* ~! U a5 O
{
" B" V N2 u) [3 J# Npublic:
' _4 h6 H) I3 `6 n/ B; s void run()
* {, [0 H L6 K5 @" e {
! b! F+ J. S; `# B" v$ [% } if (this->isCanceled()) {
5 T8 d. ?1 ~$ Y+ ]* Z this->reportFinished();
; h; c$ x# Q) N# j return;
% h) q5 A' u) h }
* r P1 w0 p# s( _9 D* \& |. m- { this->runFunctor();
4 M8 M/ x) n1 H( W4 J this->reportResult(result);
9 i! C+ _% i! l+ x4 v+ m V) q0 _ this->reportFinished();
# @& N) m; V* Q* x0 g& ]2 _ }
U8 H8 T/ ^# u+ R/ ~ T result;
$ x+ V7 s" m2 Y x};" Q r! w! |: V+ ~: |. W" y
& F/ Q# w9 q: }2 s( n8 U4 ftemplate <>
( T2 G) j+ v& g x$ |0 i+ _, pclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
l* Q. L- L# R- i. ]" h6 S% T9 t0 a{
8 X+ n* o3 w7 z0 A# e' Hpublic:
( [ V( B$ G0 z/ L void run() n \$ i" t! ^
{
6 {" ^: Z1 S: Y. O0 S if (this->isCanceled()) {7 M+ n0 L; D7 K4 E1 l" Y
this->reportFinished();8 w5 v1 @, X+ ]# s% Y
return;) r& W# q) d0 |7 x: I: c) f& r: ^
}
! {7 \. \2 X0 O# r* g) U1 R this->runFunctor(); W$ z& v6 d( g7 i& F' M$ W5 W
this->reportFinished();
" R3 W$ ]7 X4 L$ } }
, F3 o" m! @+ |5 l; S* Z* z8 I};
0 o2 A; x" H/ V) r2 o
" p L: s. E2 c6 K7 m) w} //namespace QtConcurrent9 }7 H+ T5 `0 Z9 e- |. Z8 ]
6 B/ j+ G# Q5 w#endif //qdoc0 B# Y! T5 d& a0 U# x8 x
/ k4 D6 @8 E4 I8 AQT_END_NAMESPACE
% y5 R5 `, P- e/ R% sQT_END_HEADER" n% n% |( l% x& [9 g, z
3 {4 y& `. ?! h+ q8 `" Z. n5 _#endif // QT_NO_CONCURRENT
* f8 N" N, n+ F1 H9 Q7 G4 m: ~% w
. N8 b$ o/ x K( G#endif' ?$ S! |) R6 F! z+ `, B1 P* q. F
( `, K% Z1 {- C5 _/ U& v |
|