当前位置: 代码迷 >> QT开发 >> ,arm移植Qt4.7.0的有关问题
  详细解决方案

,arm移植Qt4.7.0的有关问题

热度:172   发布时间:2016-04-25 05:03:56.0
求助,arm移植Qt4.7.0的问题
之前移植4.6.2,很好用,现在最新出了4.7.0.也想移植到板子上用,但是出现
QString::arg: Argument missing: "/proc/%1/exe" , 874
Qtig:r:Agmn isn:"po/1ee 7
Qtig:r:Agmn isn:"po/1ee 7
Qtig:r:Agmn isn:%ted,/
Qtig:r:Agmn isn:"1qebde-2
Cno raeQ o meddLnxdt ietr:%ted
Aborted

请问咋解决?难道编译的时候参数不一样了?

./configure -prefix /qt/build -opensource -confirm-license -release -shared -embedded arm -xplatform qws/linux-arm-g++ -fast -optimized-qmake -no-pch -qt-sql-sqlite -qt-libjpeg -qt-zlib -qt-libpng -qt-freetype -little-endian -host-little-endian -no-qt3support -no-libtiff -no-libmng -no-opengl -no-mmx -no-sse -no-sse2 -no-3dnow -no-openssl -no-webkit -no-qvfb -no-phonon -no-nis -no-opengl -no-cups -no-glib -no-xcursor -no-xfixes -no-xrandr -no-xrender -no-separate-debug-info -nomake examples -nomake tools -nomake docs -D__ARM_ARCH_5TEJ__

请问有朋友做了4.7.0的移植了么?成功了么?参数是啥呢?

------解决方案--------------------
修改qchar.cpp中的2个函数为原版函数就OK了
static void canonicalOrderHelper(QString *str, QChar::UnicodeVersion version, int from)
{
QString &s = *str;
const int l = s.length()-1;
int pos = from;
while (pos < l) {
int p2 = pos+1;
uint u1 = s.at(pos).unicode();
if (QChar(u1).isHighSurrogate()) {
ushort low = s.at(pos+1).unicode();
if (QChar(low).isLowSurrogate()) {
p2++;
u1 = QChar::surrogateToUcs4(u1, low);
if (p2 >= l)
break;
}
}
uint u2 = s.at(p2).unicode();
if (QChar(u2).isHighSurrogate() && p2 < l-1) {
ushort low = s.at(p2+1).unicode();
if (QChar(low).isLowSurrogate()) {
p2++;
u2 = QChar::surrogateToUcs4(u2, low);
}
}

int c2 = QChar::combiningClass(u2);
if (QChar::unicodeVersion(u2) > version)
c2 = 0;

if (c2 == 0) {
pos = p2+1;
continue;
}
int c1 = QChar::combiningClass(u1);
if (QChar::unicodeVersion(u1) > version)
c1 = 0;

if (c1 > c2) {
QChar *uc = s.data();
int p = pos;
// exchange characters
if (u2 < 0x10000) {
uc[p++] = u2;
} else {
uc[p++] = QChar::highSurrogate(u2);
uc[p++] = QChar::lowSurrogate(u2);
}
if (u1 < 0x10000) {
uc[p++] = u1;
} else {
uc[p++] = QChar::highSurrogate(u1);
uc[p++] = QChar::lowSurrogate(u1);
}
if (pos > 0)
--pos;
if (pos > 0 && s.at(pos).isLowSurrogate())
--pos;
} else {
++pos;
if (u1 > 0x10000)
++pos;
}
}
}

static void decomposeHelper(QString *str, bool canonical, QChar::UnicodeVersion version, int from)
{
unsigned short buffer[3];

QString &s = *str;

const unsigned short *utf16 = reinterpret_cast<unsigned short *>(s.data());
const unsigned short *uc = utf16 + s.length();
while (uc != utf16 + from) {
uint ucs4 = *(--uc);
if (QChar(ucs4).isLowSurrogate() && uc != utf16) {
ushort high = *(uc - 1);
if (QChar(high).isHighSurrogate()) {
--uc;
ucs4 = QChar::surrogateToUcs4(high, ucs4);
}
}
if (QChar::unicodeVersion(ucs4) > version)
continue;
int length;
int tag;
  相关解决方案