我在编译qtopia-free-2.1.1时如下操作:
[root@liu qpe2.1.1]# pwd
/home/liu/embedsys/target-qt/qpe2.1.1
[root@liu qpe2.1.1]# export QTDIR=/home/liu/embedsys/host-qt/qt-embedded-free-3.3.5
[root@liu qpe2.1.1]# export QPEDIR=$PWD
[root@liu qpe2.1.1]# export LD_LIBRARY_PATH=$QPEDIR/lib
[root@liu qpe2.1.1]# ./configure -xplatform linux-arm-g++
Expecting Qt/Embedded to be at least version 2.3.9,
found only version 0.0.0, aborting configure.
[root@liu qpe2.1.1]#
我的QTE明明是3.3.5这个版本,QPE却检查出是0.0.0,大家有没遇到如此奇怪的问题?
然后我打开configure文件,发现有:
[root@liu qpe2.1.1]# vi configure
# Check Qt/Embedded version
if ( $opt_qtopia ) {
debugMsg("Validating Qt/Embedded version");
my $qglobalFile = "$QTDIR/include/qglobal.h";
if (!open( QTVERSIONFILE, "<$qglobalFile" )) {
die <<END;
Your QTDIR environment variable does not seem to point to a
valid Qt/Embedded, aborting configure.
END
} else {
while ( defined($_ = <QTVERSIONFILE>) ) {
if ( /QT_VERSION\s+(\d)(\d)(\d+)/ ){
$qteMajorVersion=$1;
$qteMinorVersion=$2;
$qteRevVersion=$3;
$qteVersionStr="$qteMajorVersion.$qteMinorVersion.$qteRevVersion";
last;
}
}
close( QTVERSIONFILE );
$minqteVersion =~ /(\d+)\.(\d+)\.(\d+)/;
my $minqteMajorVersion=$1;
my $minqteMinorVersion=$2;
my $minqteRevVersion=$3;
my $ok = 0;
if ( $qteMajorVersion > $minqteMajorVersion ||
( $qteMajorVersion == $minqteMajorVersion &&
( $qteMinorVersion > $minqteMinorVersion ||
( $qteMinorVersion == $minqteMinorVersion &&
$qteRevVersion >= $minqteRevVersion ) ) ) ) {
$ok = 1j;
}
if ( !$ok ) {
die <<END;
Expecting Qt/Embedded to be at least version $minqteVersion,
found only version $qteVersionStr, aborting configure.
END
}
}
debugMsg("Validating Qt/Embedded config");
my $buildoptsFile = "$QTDIR/.buildopts";
if ( ! -f "$QTDIR/LICENSE.TROLL" ) {
open(BUILDOPTS, "<$buildoptsFile") or die "Can't open build options file ($buildoptsFile).\n".
"Did you configure Qt/Embedded?\n";
my @buildopts = <BUILDOPTS>;
close(BUILDOPTS);
if ( grep( /QT_NO_IMAGEIO_JPEG/, @buildopts ) ) {
die <<END;
Qtopia requires JPEG support but Qt/Embedded is not configured with JPEG
support. Please reconfigure Qt/Embedded.
END
}
}
}
从上面可以看出,显示QPE去检查$QTDIR/include/qglobal.h
我又打开这个文凭,显示:
#ifndef QGLOBAL_H
#define QGLOBAL_H
#define QT_VERSION_STR "3.3.5"
/*
QT_VERSION is (major << 16) + (minor << 8) + patch.
*/
#define QT_VERSION 0x030305
显然QPE检查不对,大家有不遇到这种情况?这是不是QPE的一个bug呢?请教大家如何解决?
[ 此贴被XChinux在2005-12-24 18:08重新编辑 ]