|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
0 ^) i5 T# G& W' R9 K5 w' N/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
3 V4 P m# n' o1 z- U, z W9 m3 H0 P: D. n
这个头文件内容如下:1 A6 S6 l2 O$ \, u0 M
#ifndef QTCONCURRENT_RUNBASE_H& E( D0 m- A: E: L
#define QTCONCURRENT_RUNBASE_H& _9 u) K: [0 p8 X) H% {( u
4 x9 x$ {/ ^2 J2 f/ q. x$ L5 P
#include <QtCore/qglobal.h>
* r; P" a- [) |' b8 v$ c+ Y6 P @1 K+ z" G# s
#ifndef QT_NO_CONCURRENT6 d; I1 P% t, v% y" m8 m
7 n/ ^6 y: N7 S2 S3 |
#include <QtCore/qfuture.h>2 R# z/ ]1 b( V
#include <QtCore/qrunnable.h>
% e- o3 m. j- l2 Z9 z4 G#include <QtCore/qthreadpool.h>; [- g) v, r7 m" `% k
) g+ d0 R, h6 EQT_BEGIN_HEADER' r2 Y% R w9 ?/ `
QT_BEGIN_NAMESPACE
6 A8 Q* g! [2 |* s( c. `1 i( V- A3 G/ k Q. \0 V
QT_MODULE(Core)6 Y- H) p0 f6 o" W& [
7 `4 M. d1 P. J0 p4 ^/ q
#ifndef qdoc( U# i2 E" m! f% H; h
4 [( q% ~4 D' x: F: f
namespace QtConcurrent {
2 _: W3 q- n; u# ?
* ^( B1 W) o9 ^) |: M5 ?' s3 gtemplate <typename T>8 K! o# |8 @9 k9 v" e6 @4 O4 O! a
struct SelectSpecialization
8 t4 N6 _! k7 Q+ H( W6 D" J7 U{0 O6 u$ F+ |- w! k: U/ G. ?0 ?/ H
template <class Normal, class Void>
8 R. M" ^7 B8 {: @* B& X struct Type { typedef Normal type; };
$ `5 v7 N2 F" F3 C# M( P};0 `: `; C8 m& _3 f( A
- c7 }# R2 B' jtemplate <>
' \6 p& k8 E sstruct SelectSpecialization<void>8 I% y5 L* d# @7 \4 @! _! b' L3 l" k% M
{
' r0 O/ L) Z C& L* z- v. m6 q' T template <class Normal, class Void>
. A) f, I+ X6 q& ? struct Type { typedef Void type; };
% W' i. q+ T( V# J$ g+ Q% _4 n};
0 G* N+ T P# @' k* `( ?) K; t# {" o8 ~! j6 d
template <typename T>5 l" J9 u* C' K+ G: Y8 ^/ |
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
: k2 i, K n( x{
5 M1 T p( O% g4 {6 P% gpublic:
) _6 O) D3 M$ d7 k% T QFuture<T> start()% E2 V+ r. D1 [) ]" P9 s; [
{
: L2 C: s" e9 _8 G+ ~ this->setRunnable(this); g' a! a K( ?, Z( g! J
this->reportStarted();, a8 k9 ~6 D p: c2 L
QFuture<T> future = this->future();" t1 w6 T/ a, h
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);! r* R2 l, u6 G" a
return future;
F8 E0 \$ I/ ^. r3 r# Z; J" Y s }! _/ o& I8 q" s0 I$ G1 n
7 a# w7 { u: d4 B0 l: Z2 o0 H void run() {}
4 W g+ W7 S9 {, X! | [+ i virtual void runFunctor() = 0;0 M% y/ F0 O7 f' V; a: V6 V
};9 c; K+ h1 P& K$ }; I6 t6 v! ]
, S9 b$ V m, e) ?9 |, A
template <typename T>* C+ b5 N2 y1 B2 B1 \
class RunFunctionTask : public RunFunctionTaskBase<T>
. n/ u0 ?0 H* e: a4 ?; U! s' [. f{" y0 ?3 K0 x+ R2 o& T9 H
public:9 }" I; Q( [1 y9 A, O9 J+ L+ y* d
void run()1 ^ T) p5 F! K# `% a1 e t8 q4 p& F+ f
{
8 [' M1 Z9 M8 i# Q& D! \ if (this->isCanceled()) {
1 Q, e0 W4 @! h5 I" G1 g this->reportFinished();
* k/ }" i: `! U I return;
& q( y% u1 z# ]) W2 c8 _9 H }
) L# X1 r5 ~! @5 D this->runFunctor();
# f! n9 V+ X# s this->reportResult(result);
! M2 a2 j2 |' _ this->reportFinished();
2 _# k2 V5 z; ]" X3 F }) q& h! B* y: }6 g- ]
T result;. y3 h* N. g9 y6 @ D* c- x
};
" v3 @& R5 Y1 \: u+ Y
! O- y O3 S- Q# K, stemplate <>1 ]# k l4 g" w; }
class RunFunctionTask<void> : public RunFunctionTaskBase<void>1 x3 ]% l. X0 F, A3 F
{; G, t0 k, b7 U9 }/ K
public:
& M2 d4 ?2 O! | \- {1 i void run()1 c) L& m: ~- m" Z3 S! r% l
{
9 `. |, ^5 O" ^' p$ [0 l* F if (this->isCanceled()) {
2 V; E4 V% B8 Y( V7 k5 l this->reportFinished();
3 r4 b8 o6 D, v: Q8 y! D; d. W; W return;
% B( C9 z w6 s; ]5 L }
. N$ L+ x( l0 l: z this->runFunctor();
3 B6 ?, s3 V) t# `" |- S this->reportFinished();
R* k+ R# @1 F) b# \/ S7 g/ W }, C' u9 q# ?% Y$ v& s
};: D, D8 T& G( M- X/ g2 j
+ X# l' R7 e! f7 h5 m3 a
} //namespace QtConcurrent( g) h% |2 e' A5 [1 ^
( _6 h/ y0 w8 t6 h* y
#endif //qdoc$ z$ c- O3 r0 r: E% ~2 q! V
# Q( O: Z$ l4 A1 b# Z7 _) v
QT_END_NAMESPACE
) f6 g0 y8 R0 W X1 xQT_END_HEADER
( u1 o/ X8 q, {, h/ K. b) z' O$ N- r1 B# ?- g, g- D
#endif // QT_NO_CONCURRENT
9 _7 A* S% z) r6 K1 P. j3 l. d n9 T' e5 a! h8 a' i
#endif
l3 G7 |; g! L! v0 O" U
. |5 a( |; J# ^" u" }( g |
|