|
|
我对syslink进行交叉编译到arm,但是出现如下错误:2 q2 K! H1 T" Z$ n5 r) [! C& d
/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'5 P. ?4 e# H9 V
$ c. L: T, x* l }8 w: M9 Q' {这个头文件内容如下:
$ o0 |7 l6 j& f#ifndef QTCONCURRENT_RUNBASE_H
5 A& h* ?7 L3 U. q#define QTCONCURRENT_RUNBASE_H
: H t% o) s; F1 \, d5 c$ X/ {; ^. }- L8 G" d' H- t
#include <QtCore/qglobal.h>, v6 X: w1 f3 E0 F
4 v! T. C! l8 `" {0 J
#ifndef QT_NO_CONCURRENT9 ]7 G5 w) w. K! y
3 A9 i/ \0 i/ X% l* g
#include <QtCore/qfuture.h>9 Q y# f4 ^1 ], E3 r1 E
#include <QtCore/qrunnable.h>" L6 a9 T# Q5 m& q
#include <QtCore/qthreadpool.h>
+ Q# q4 A I4 r: `" u0 q; I/ p; \- }! [1 B/ q, d. x# N4 n* R
QT_BEGIN_HEADER6 s+ }# c- [0 Q- y" i
QT_BEGIN_NAMESPACE+ B' N: L4 T5 ]8 u2 r
5 ~9 p: B/ [, T1 A- l5 v/ x0 o, e* vQT_MODULE(Core)
# w' F$ p5 W6 W. A% V) G, H
4 v2 _5 d4 \" z7 M5 p! J; }#ifndef qdoc
8 l* z, } V" h% _; J- A+ c1 z; h5 W3 g: r9 m* t; Q$ A3 s
namespace QtConcurrent {
9 ?7 `5 A0 x2 h! f* M* Y0 x8 ` d" s3 U5 t$ d) z* k
template <typename T>- r0 q9 a' ^/ C I0 O; l n
struct SelectSpecialization
6 S3 Q+ B& q) Q" i; Y- m4 J{6 G* J4 J* N% C4 V( N* N. o+ s
template <class Normal, class Void>! u9 U g$ _* Q0 Z5 Y' ?
struct Type { typedef Normal type; };
6 I; s# K S. s9 D};
5 d# Z* \6 W" s5 P! Q; G3 s
% m2 L( p6 g1 x! f; X; l o% r" f, vtemplate <>
( Z' U7 q$ x) w! x% astruct SelectSpecialization<void>% j- t% c5 y: f" d8 m1 \5 n
{
" S/ t! c( | {# ^6 ? template <class Normal, class Void>
" C' m+ L7 d# B) j2 m) ^ struct Type { typedef Void type; };
2 Q- M* @1 e b};4 N% |4 m7 S K9 q" ]6 F
) s u0 w3 H" N+ `1 A, c
template <typename T>+ Q ^' F" F: C6 z) P4 H* b
class RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable- I/ J8 P: b; A6 K
{
* L$ c6 Y1 j/ n" o5 C, t' Cpublic:
6 _2 e4 V2 o. d9 M @) M QFuture<T> start()
3 v5 t% d1 h# V$ B4 q0 _ {: F4 _6 n8 ?2 Y+ e( P8 I
this->setRunnable(this);1 s3 y& ?% |0 [
this->reportStarted();
4 u* Q% g, d, c! {- Y4 v5 f9 B4 q4 m QFuture<T> future = this->future();
& s5 W2 x7 @* g9 r" P! F QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
. P$ v5 P4 j! u. X! ]! d return future;
! `3 R! e& i& ^* H% m7 P }: {3 ?& f; t4 J
' h0 M4 O& p- Z5 r* d$ ~6 D
void run() {}+ T% \; z c; b7 U$ Q1 F3 F
virtual void runFunctor() = 0;' P) I* y L" w3 V; M U
};8 [9 H- A+ [$ T* a
# `* L) q4 c7 b
template <typename T>
9 d# R7 g1 N7 r6 r3 J5 `class RunFunctionTask : public RunFunctionTaskBase<T>1 C8 v1 H* E9 Y& {, l
{2 } _# V8 P+ K3 z2 t
public: Z3 u; D% z1 X9 O! z* n
void run(). O2 d. T6 w- [! t, J; G) h
{
5 }- S& A9 ~( J7 ^ if (this->isCanceled()) {
( n0 D, c, |+ T, D this->reportFinished();; i/ ?7 I3 e( U4 N0 a3 ^
return;1 i; R# E0 q6 k# ]; s& @8 y9 X, D
}
! d! s4 q! F1 N# A this->runFunctor();7 ]* C5 g2 [+ c# O5 @) [
this->reportResult(result);
4 _. k& h& \+ w9 C6 V5 M% n1 O this->reportFinished();
5 s3 K* _' u6 K }6 J! P5 t. a& n2 O3 b3 D
T result;
/ P+ C$ H$ n3 t$ D8 F* T};* _* U. r1 _, K
3 E% U: T r6 C& N$ S5 N. `) ttemplate <>
4 Q" j1 P& j( i0 `& ~$ pclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
% F8 j# c h! S5 ~7 M9 O# O{
, t6 d, p: [, c2 O% Z/ q& `# l! Q4 Bpublic:- f3 I L6 ~% i+ b- W' C/ n( m
void run()
0 F' d0 t: f7 E+ J$ a- r0 O {
' E0 d9 E: ]8 t6 A C! ? if (this->isCanceled()) {
4 Q4 s# T' E" a. ` @. z3 R this->reportFinished();8 H# d* n# |1 h5 I& f
return;
4 X, z7 u% ] M7 o/ }$ a }& m' P9 \+ |+ {
this->runFunctor();5 x% Y0 k V) n6 D
this->reportFinished();6 M' S& C' o+ h) d [, K
}
2 ?, t% B" J1 g9 y}; ?4 L: p9 J! u. ^
$ F! n" g" D1 g- W
} //namespace QtConcurrent( D: D- ^) T. b& A$ I, }- s# z
6 _/ E3 ~$ l+ C: ^ `) q2 b
#endif //qdoc
; G$ t( F+ [$ e+ p0 z- J$ M. W4 I
QT_END_NAMESPACE8 N# |4 i& F6 @) f8 s+ Z3 p
QT_END_HEADER
: Y/ u2 A, N S8 \' \
: A( m3 _: k9 `( L1 J#endif // QT_NO_CONCURRENT9 P4 `$ ]' x7 j6 k |# d/ [: f
9 j0 X+ C6 q, D4 U
#endif
; F" R! z: k, |
- p! N* h- b" N' H* r4 `. \! J |
|