|
|
我对syslink进行交叉编译到arm,但是出现如下错误:
4 f/ k8 M' M& }7 ]; ^3 E; v7 U R9 A/home/tl/Projects/Xdl-build-arm/../../qt/Qt4.7/include/QtCore/qtconcurrentrunbase.h:65: error: two or more data types in declaration of 'parameter'
2 W1 e+ c1 V2 O+ i: ]0 }
( U3 s( m7 s5 ?# J这个头文件内容如下:
& Z. ]" E5 V7 p F' K6 ~) d& L3 a#ifndef QTCONCURRENT_RUNBASE_H6 Z0 |6 u2 [! s& L9 s
#define QTCONCURRENT_RUNBASE_H" T' P5 X; x q/ _6 a
& g' m P$ b& q+ `#include <QtCore/qglobal.h>
- M G" a7 }% v+ |$ k
@' A$ f, c: L( {#ifndef QT_NO_CONCURRENT
0 y" @7 V9 k0 |" N7 I
/ G& s0 N% i0 i" T5 W. I/ n#include <QtCore/qfuture.h>
; j* C& i. e& O#include <QtCore/qrunnable.h>
3 n8 X7 L) k/ D' t. F+ k* i3 v#include <QtCore/qthreadpool.h>
" K; b" G3 O, l c- t! U5 Y9 d1 q5 l5 }
QT_BEGIN_HEADER
5 U+ x4 e4 |( q3 o qQT_BEGIN_NAMESPACE$ j9 J/ z+ f- K2 Q% a1 A
$ f ~1 o/ m+ w7 ~4 n# l$ V# b
QT_MODULE(Core)! N4 U: x9 L% `7 V, w. p
) \' J4 A2 }9 I$ E# f
#ifndef qdoc. l. F; C$ X) T( z7 M) X; K& i
. A: o- D' ]7 y$ U% b
namespace QtConcurrent {+ h1 g$ b, h% m1 i5 f) U, D! l
5 ^0 y J6 s" n0 u0 Z( t. ?' A5 ~
template <typename T>0 v* S( O5 d8 d, t. e/ m: i! Z
struct SelectSpecialization. y/ {6 N6 B2 c9 {, Q3 g$ r
{( y4 l- H4 E: b: W7 m5 I, ?0 Y
template <class Normal, class Void>
4 u$ ^; m: N4 _ S B struct Type { typedef Normal type; };' \! {# T# e' ^
};
`7 d, f/ A" {$ B9 l. m1 L1 k4 ~3 I0 I5 E* P7 V
template <>
+ c0 j9 {5 j- h$ w8 xstruct SelectSpecialization<void>! [) k0 L1 Q% m t
{
# ]$ E* x6 r' I8 J: V) J3 A template <class Normal, class Void>
& M3 D9 ]* k0 o: f- q* e) w struct Type { typedef Void type; };3 M1 i% F4 i: @2 j
};" R* Q/ W/ b$ {0 X3 i% ~ F9 U
. w) V) _# K2 L- v- wtemplate <typename T>
) l5 c9 z7 C/ j$ l" g7 H! O- Wclass RunFunctionTaskBase : public QFutureInterface<T> , public QRunnable
! S7 T# l6 Z% s( M0 Q1 @7 O! r{7 Y B% e- ~: Y: }# c1 n+ z
public:
' u8 A8 ?' w' P7 r- g' m! N QFuture<T> start()
0 F2 I: e& K; z( B8 n6 e {1 f* G5 e2 ^+ J k/ M5 S1 ^
this->setRunnable(this);
3 L3 @% ^9 ~7 K& b this->reportStarted();; S" _3 v) h" |8 v* \
QFuture<T> future = this->future();
6 ?' ?% k- z: ] f" r& T QThreadPool::globalInstance()->start(this, /*m_priority*/ 0);
& Q9 U; s: ^' k5 n' Q9 O5 s) T$ n+ X return future;
7 u3 Y8 }6 P* Z' t$ x) }; A }7 Z: V9 B9 b+ Z$ }$ P; b
3 G( }5 }% {1 T c9 e4 T9 q
void run() {} S% |" o* \) f* F) U) R( R; ~
virtual void runFunctor() = 0;% U$ U; N$ `; O& x
};
; \+ l6 C1 x; [8 k5 [2 f7 x
4 `, w+ o3 J: V" |template <typename T> Z6 E3 j( L5 S# u/ C
class RunFunctionTask : public RunFunctionTaskBase<T>; {8 l5 y, s4 l
{
" X3 o, q, {) Rpublic:
. u" a1 A- u; a1 b& `3 \. r void run()
/ I! y2 K* Z& S1 U* s0 C {
) ?. Z2 S) G6 J1 h9 G- @) u if (this->isCanceled()) {
% @7 D& ?& F9 M' H" ]- k; V this->reportFinished();" i% b4 X* |& s, W& a5 b
return;
2 r$ T7 I3 y: V% R1 N5 b8 F }" i, ^- O8 Y6 k W. {- Z
this->runFunctor();% D' O7 B2 k b1 ]6 B- K3 T! J
this->reportResult(result);
' L. F) v/ S" u" }% H! c) _ this->reportFinished();. h" L& Q$ M5 j. p3 N5 M
}+ O- n% _9 r4 D9 A, [+ D# Q; [9 `
T result;
0 C" U7 f% N9 o3 s, R/ ]; A};: d1 f o: P3 }; R4 O; F
8 Y( x8 m, q0 C5 l$ g8 Q8 etemplate <>
! @) J5 ]) r+ @# H- {class RunFunctionTask<void> : public RunFunctionTaskBase<void>( r) b# n( _. f9 V, }" D ^
{
% N0 E9 d& S- T' zpublic:
" ?- Y+ q8 `+ H/ V void run()0 ]# Q2 }" v; b1 X) M3 x- a, ~
{1 U" M- t& L) G) @# j& [& f# \
if (this->isCanceled()) {- b% k/ w/ {4 S/ L
this->reportFinished();
2 r+ M7 w) s8 c4 p return;0 k8 m" V; {2 `" l$ O
}
/ Q% Q# O# D6 ?% O2 D& W3 I this->runFunctor();
. W/ }9 \$ V% a+ j! o this->reportFinished();; t' e Q3 d; e6 Z+ g0 o$ v0 b
}3 I8 z( E" P! i% O
};4 _8 O, }( z. v3 j+ X9 M. n: _3 Y( Q P
! n! f: P l; V% \7 `, w* Y} //namespace QtConcurrent
8 G$ }2 H' S& {$ R& P% V& r; r/ \) Q/ j# |/ B" B' A0 E
#endif //qdoc3 e) x$ M! `! N, Z, ^* s% |% d
# q f) r+ W! ?; t% e; r
QT_END_NAMESPACE" e" {8 `& p4 ~, [* C
QT_END_HEADER
3 I' b$ V: X: S+ N5 r# B9 ?( q
3 r4 T- {. L$ T: u#endif // QT_NO_CONCURRENT
' o) x% y" g; z
+ s4 c1 z A1 k- g#endif
" c" h2 `! q4 B4 z! U; G; J. z/ [+ A0 V- b, v2 W
|
|