|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
: }/ K) C' n* r2 O: O: l8 C6 | }/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 h, Y/ N- b8 q, Z8 }' A: a
6 T" _% X8 q$ E这个头文件内容如下:) c Y! [- z+ f" A& ^6 u
#ifndef QTCONCURRENT_RUNBASE_H* D) L5 w; d7 m: Z/ A
#define QTCONCURRENT_RUNBASE_H
. x' K# M( n9 N! v6 y. b8 B+ C/ L9 i0 K% t
#include <QtCore/qglobal.h>
3 B2 s: K7 E5 q! V+ W0 }& }/ Q3 f5 S! k
#ifndef QT_NO_CONCURRENT
7 Q0 P! Z; I8 i* z) g# Y% `/ D1 y, w7 F7 ]
#include <QtCore/qfuture.h>3 F+ P- ?5 k2 C, F
#include <QtCore/qrunnable.h>
, W: h! R- A- T# l( l4 Z3 N#include <QtCore/qthreadpool.h>( n; @4 l; j2 x# i9 Z0 L2 k
8 N4 S2 b" d9 H$ ]QT_BEGIN_HEADER3 T- N# G- p D" q- v
QT_BEGIN_NAMESPACE) }* z" q8 B6 M! U4 O# d% T
2 r6 j& |) A5 [5 E9 e6 z2 Y) v7 j
QT_MODULE(Core)3 g% a o! ^9 U
; P0 p9 P# q f* ~7 V
#ifndef qdoc
* D+ r9 @, A( L; g& W7 p$ l" }6 U: G: e5 w+ c
namespace QtConcurrent {
3 `9 C9 e( |+ U2 i' i) Z3 I2 ^# `
0 ?8 X( J7 H' [9 [9 u. m& y7 U0 ]template <typename T>
( X( R/ H: J: K: Gstruct SelectSpecialization
9 `9 x3 k2 P! A J{
/ G2 |. [2 V7 u. ~* m template <class Normal, class Void>8 ^3 Q3 b! j6 ~0 K( A v+ ^
struct Type { typedef Normal type; };# S7 i* a8 P+ Z* Y0 C5 \
};
w5 e x: r. w) p
$ [: t& w3 z5 t9 p" atemplate <>* D7 N3 U- N' R4 a# M" Q
struct SelectSpecialization<void>
" v; c9 u4 p3 b Z8 ?# z% q8 q{4 E3 \2 k! K v. o5 N- o; z
template <class Normal, class Void>
) |- s& l8 K* L- v struct Type { typedef Void type; };) G- S+ F" Z0 ~$ l
};% ^6 w, b6 l" h+ [
: v- z8 y) W9 E, {* x! W& m
template <typename T>
; t" `' Z6 m3 Zclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable u: n3 T8 ~0 e5 d
{
3 x) ?, C# z: K opublic:: i5 `, I4 ?9 P
QFuture<T> start()
, I$ N5 e8 |' T7 A Q {$ ~& e0 C: B. x1 N
this->setRunnable(this);
9 L/ {$ d) H* K% A+ l this->reportStarted();! x- }4 s W: `
QFuture<T> future = this->future();1 C7 Z* I! O3 M1 W {
QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);' J8 Q' |8 |+ x8 S( m) a8 x
return future;
- j! s7 Q$ |. Y9 t9 }& { }# I) g4 j. Y: o; Z/ i( D8 [
" @- {9 G: W* ]6 C" Y9 m
void run() {}
, i; s' x N- Y virtual void runFunctor() = 0;
! P, l' L* {+ u: f) ^* z};% `, x& ]: A# U j. H6 j' T! R
) O" S0 X0 g4 \/ ]$ ctemplate <typename T>3 [3 W& x6 Y' s3 v1 G& v
class RunFunctionTask : public RunFunctionTaskBase<T>
# O g1 N* m0 U2 Y* X{
! C8 i9 i, h& t6 o1 V9 K4 H$ Mpublic:
, ]9 g6 s( H5 z; N x void run()) l# P- v- ^+ @3 J
{
" y* J- g l; P, S if (this->isCanceled()) {
d4 C) Y+ h% z# i% a7 E this->reportFinished();
" _6 E7 x+ |( b4 g) @2 e- d" W( P return;6 C% ^$ C! P6 ^% R
}: |! F+ u: ~- b- U% S: o4 ?. G
this->runFunctor();
5 R3 r9 p" ^0 w& w0 W$ p2 R: i this->reportResult(result);
* L3 A! b+ l( r7 ^ this->reportFinished();& f+ t& D2 p6 y+ e3 c. n* T
}& n: `8 ^ u0 p% K8 |
T result;# y) {& O* u# B* T
};
; n1 C+ o) X" R7 h7 G3 U$ L: C* g4 O# m
template <>
* q/ t! O5 B7 J, u# A* Aclass RunFunctionTask<void> : public RunFunctionTaskBase<void>
6 Y. s; A2 |! I8 O{
" k6 {7 x" H6 r( u* y5 rpublic: q/ N1 H) X: k! P! u& L
void run()" w; ^, n$ M! d U- x
{
5 ?2 ]2 ?' C0 T2 @5 S% E' i if (this->isCanceled()) {
0 [% I' H% z6 O# J& R this->reportFinished();$ r/ T: ^: }' N& ^
return;7 P/ s: V; F2 W J* X! m) k, k
}
9 B- j L( n. K) v' w c this->runFunctor();
$ O$ X; [ |) @) h this->reportFinished();
4 }; b- C& r5 P! c1 a* b+ V2 G6 ^3 ` }% O; f; B: T+ x/ n' {5 R. O8 {( w1 z! |
};
: |# m6 f) Q s; _6 o- c: s, J7 m- W
% ^& {( E9 W0 G. D0 _6 h} //namespace QtConcurrent
% Q) b- c/ m7 F$ r+ J/ D3 `' a" o- F
#endif //qdoc- v% X7 B: c1 k. O, f: H4 U. J
- d6 m* Y0 m+ v) w1 H, GQT_END_NAMESPACE
7 j. T1 s( M; aQT_END_HEADER9 Y7 a% R& R) x8 Q
9 O/ z U/ Y/ T: E( [4 P3 j
#endif // QT_NO_CONCURRENT
, L5 J- |2 M; M2 ]4 U1 n; X% H& a) q j% @+ ~7 X* y. g U
#endif
& h$ R5 V/ R2 X' U0 V& m) ]
/ J% T! I; o: p |
|