Error when compiling Qt for S60 Emulator
Unfortunately I cannot seem to get compiling Qt for the S60 emulator to work - have tried it for several hours, but I wasn't successful. Would be great if somebody had a suggestion or idea what could be wrong or what I could have missed.
[B]What happens:[/B]
- The configure-command as specified in the INSTALL document runs successfully, without any errors.
- "bldmake bldfiles" generates the files and has no problem.
- "abld build winsc udeb": produces an error after working for some time:
[I][...][/I]
Creating \s60\devices\s60_3rd_fp2_sdk_v1.1\epoc32\build\qt\4.4.4-temple\fluidlauncher_5d1ebb5a\winscw\udeb
Created \S60\devices\S60_3rd_FP2_SDK_v1.1\epoc32\release\WINSCW\udeb\z\private\10003a3f\apps\fluidlauncher_reg.rsc
make -r -f "\S60\devices\S60_3rd_FP2_SDK_v1.1\EPOC32\BUILD\Qt\4.4.4-temple\WINSCW.make" TARGET CFG=UDEB VERBOSE=-s
make -s -C \Qt\4.4.4-temple\src\s60main -f "MAKEFILE_112038A1.MK" TO_ROOT=..\..\..\.. EPOCBLD=..\..\..\..\S60\devices\S60_3rd_FP2_SDK_v1.1\EPOC32\BUILD\Qt\4.4.4-temple\MAKEFILE_112038A1\WINSCW TO_BLDINF=..\..\..\..\Qt\4.4.4-temple PLATFORM=WINSCW CFG=UDEB BLD
make -s -r -f "\S60\devices\S60_3rd_FP2_SDK_v1.1\EPOC32\BUILD\Qt\4.4.4-temple\S60MAIN_112038A1\WINSCW\S60MAIN_112038A1.WINSCW" UDEB
make -s -C \Qt\4.4.4-temple\src\corelib -f "MAKEFILE_5104B625.MK" TO_ROOT=..\..\..\.. EPOCBLD=..\..\..\..\S60\devices\S60_3rd_FP2_SDK_v1.1\EPOC32\BUILD\Qt\4.4.4-temple\MAKEFILE_5104B625\WINSCW TO_BLDINF=..\..\..\..\Qt\4.4.4-temple PLATFORM=WINSCW CFG=UDEB BLD
make -s -r -f "\S60\devices\S60_3rd_FP2_SDK_v1.1\EPOC32\BUILD\Qt\4.4.4-temple\CORELIB_5104B625\WINSCW\CORELIB_5104B625.WINSCW" UDEB
harfbuzz.c
src\3rdparty\harfbuzz\src\harfbuzz-global.c:35: warning: illegal implicit conversion from 'int' to
src\3rdparty\harfbuzz\src\harfbuzz-global.c:35: warning: '@enum$2harfbuzz_c'
src\3rdparty\harfbuzz\src\harfbuzz-global.c:58: warning: illegal implicit conversion from 'int' to
src\3rdparty\harfbuzz\src\harfbuzz-global.c:58: warning: '@enum$2harfbuzz_c'
src\3rdparty\harfbuzz\src\harfbuzz-stream.c:49: warning: illegal implicit conversion from 'int' to
src\3rdparty\harfbuzz\src\harfbuzz-stream.c:49: warning: '@enum$2harfbuzz_c'
harfbuzz-shaper-all.cpp
adler32.c
[I][...][/I]
qharfbuzz.cpp
qxmlstream.cpp
qxmlutils.cpp
QtCore.UID.CPP
mwldsym2.exe: Undefined symbol: '__stack_alloc'
mwldsym2.exe: referenced from '_gzprintf' in gzio.c:604
mwldsym2.exe: referenced from 'bool indic_shape_syllable(unsigned char, struct HB_ShaperItem *, bool) (?indic_shape_syllable@@YA_NEPAUHB_ShaperItem@@_N@Z)' in harfbuzz-indic.cpp:1168
mwldsym2.exe: referenced from 'class QByteArray & QByteArray::replace(class QByteArray const &, class QByteArray const &) (?replace@QByteArray@@QAEAAV1@ABV1@0@Z)' in qbytearray.cpp:1678
mwldsym2.exe: referenced from 'int QDataStream::skipRawData(int) (?skipRawData@QDataStream@@QAEHH@Z)' in qdatastream.cpp:1198
mwldsym2.exe: referenced from 'bool QFile::rename(class QString const &) (?rename@QFile@@QAE_NABVQString@@@Z)' in qfile.cpp:685
mwldsym2.exe: referenced from 'bool QFile::copy(class QString const &) (?copy@QFile@@QAE_NABVQString@@@Z)' in qfile.cpp:819
mwldsym2.exe: referenced from 'void qDebug(char const *, ...) (?qDebug@@YAXPBDZZ)' in qglobal.cpp:2154
mwldsym2.exe: referenced from 'void qWarning(char const *, ...) (?qWarning@@YAXPBDZZ)' in qglobal.cpp:2198
mwldsym2.exe: ...
mwldsym2.exe: Undefined symbol: '__vsnprintf'
mwldsym2.exe: referenced from '_gzprintf' in gzio.c:627
mwldsym2.exe: Undefined symbol: '___CxxFrameHandler'
mwldsym2.exe: referenced from 'int QByteArray::indexOf(char const *, int) const (?indexOf@QByteArray@@QBEHPBDH@Z)' in qbytearray.h:536
[I][...][/I]
mwldsym2.exe: referenced from 'class QByteArray & QByteArray::replace(char const *, char const *) (?replace@QByteArray@@QAEAAV1@PBD0@Z)' in qbytearray.h:550
mwldsym2.exe: ...
mwldsym2.exe: Undefined symbol: '___destroy_new_array'
mwldsym2.exe: referenced from 'QGb2312Codec::~QGb2312Codec(unsigned int) (??_EQGb2312Codec@@UAE@I@Z)' in qgb18030codec.o
mwldsym2.exe: referenced from 'QGbkCodec::~QGbkCodec(unsigned int) (??_EQGbkCodec@@UAE@I@Z)' in qgb18030codec.o
mwldsym2.exe: referenced from 'QJpUnicodeConv::~QJpUnicodeConv(unsigned int) (??_EQJpUnicodeConv@@UAE@I@Z)' in qjpunicode.o
[I][...][/I]
mwldsym2.exe: Undefined symbol: '__stdcall(8) _CxxThrowException (__CxxThrowException@8)'
mwldsym2.exe: referenced from 'void QHash<class QString, struct QHashDummyValue>::duplicateNode(struct QHashData::Node *, void *) (?duplicateNode@?$QHash@VQString@@UQHashDummyValue@@@@CAXPAUNode@QHashData@@PAX@Z)' in qhash.h:499
mwldsym2.exe: referenced from 'struct QHashNode<class QString, struct QHashDummyValue> * QHash<class QString, struct QHashDummyValue>::createNode(unsigned int, class QString const &, struct QHashDummyValue const &, struct QHashNode<class QString, struct QHashDummyValue> * *) (?createNode@?$QHash@VQString@@UQHashDummyValue@@@@AAEPAU?$QHashNode@VQStr
ing@@UQHashDummyValue@@@@IABVQString@@ABUQHashDummyValue@@PAPAU2@@Z)' in qhash.h:512
[I][...][/I]
mwldsym2.exe: Undefined symbol: '___unexpected'
mwldsym2.exe: referenced from 'void * operator new(unsigned int) (??2@YAPAXI@Z)' in win32crt.h:154 (EDLL.LIB)
mwldsym2.exe: referenced from 'void * operator new[](unsigned int) (??_U@YAPAXI@Z)' in win32crt.h:159 (EDLL.LIB)
mwldsym2.exe: referenced from 'void operator delete(void *) (??3@YAXPAX@Z)' in win32crt.h:176 (EDLL.LIB)
mwldsym2.exe: referenced from 'void operator delete[](void *) (??_V@YAXPAX@Z)' in win32crt.h:181 (EDLL.LIB)
mwldsym2.exe: referenced from 'void * CBase::operator new(unsigned int) (??2CBase@@SAPAXI@Z)' in e32base.inl:36
mwldsym2.exe: Undefined symbol: '__stdcall(16) _rt_modu64 (__rt_modu64@16)'
mwldsym2.exe: referenced from 'int QBitArray::count(bool) const (?count@QBitArray@@QBEH_N@Z)' in qbitarray.cpp:161
mwldsym2.exe: referenced from 'int QBitArray::count(bool) const (?count@QBitArray@@QBEH_N@Z)' in qbitarray.cpp:162
mwldsym2.exe: referenced from 'int QBitArray::count(bool) const (?count@QBitArray@@QBEH_N@Z)' in qbitarray.cpp:163
mwldsym2.exe: referenced from 'int QBitArray::count(bool) const (?count@QBitArray@@QBEH_N@Z)' in qbitarray.cpp:170
mwldsym2.exe: referenced from 'int QBitArray::count(bool) const (?count@QBitArray@@QBEH_N@Z)' in qbitarray.cpp:171
mwldsym2.exe: referenced from 'class QString qulltoa(unsigned long long, int, struct QLocalePrivate const &) (?qulltoa@@YA?AVQString@@_KHABUQLocalePrivate@@@Z)' in qlocale.cpp:3276
mwldsym2.exe: referenced from 'class QString qulltoa(unsigned long long, int, struct QLocalePrivate const &) (?qulltoa@@YA?AVQString@@_KHABUQLocalePrivate@@@Z)' in qlocale.cpp:3290
mwldsym2.exe: referenced from 'unsigned long long qstrtoull(char const *, char const * *, int, bool *) (?qstrtoull@@YA_KPBDPAPBDHPA_N@Z)' in qlocale.cpp:4351
mwldsym2.exe: ...
mwldsym2.exe: Undefined symbol: '__stdcall(16) _rt_divu64 (__rt_divu64@16)'
mwldsym2.exe: referenced from 'void getDateFromJulianDay(unsigned int, int *, int *, int *) (?getDateFromJulianDay@@YAXIPAH00@Z)' in qdatetime.cpp:123
mwldsym2.exe: referenced from 'void getDateFromJulianDay(unsigned int, int *, int *, int *) (?getDateFromJulianDay@@YAXIPAH00@Z)' in qdatetime.cpp:125
mwldsym2.exe: referenced from 'void getDateFromJulianDay(unsigned int, int *, int *, int *) (?getDateFromJulianDay@@YAXIPAH00@Z)' in qdatetime.cpp:127
mwldsym2.exe: referenced from 'void getDateFromJulianDay(unsigned int, int *, int *, int *) (?getDateFromJulianDay@@YAXIPAH00@Z)' in qdatetime.cpp:128
mwldsym2.exe: referenced from 'void getDateFromJulianDay(unsigned int, int *, int *, int *) (?getDateFromJulianDay@@YAXIPAH00@Z)' in qdatetime.cpp:129
mwldsym2.exe: referenced from 'class QString qulltoa(unsigned long long, int, struct QLocalePrivate const &) (?qulltoa@@YA?AVQString@@_KHABUQLocalePrivate@@@Z)' in qlocale.cpp:3285
mwldsym2.exe: referenced from 'class QString qulltoa(unsigned long long, int, struct QLocalePrivate const &) (?qulltoa@@YA?AVQString@@_KHABUQLocalePrivate@@@Z)' in qlocale.cpp:3294
Errors caused tool to abort.
mwldsym2.exe: referenced from 'unsigned long long qstrtoull(char const *, char const * *, int, bool *) (?qstrtoull@@YA_KPBDPAPBDHPA_N@Z)' in qlocale.cpp:4350
mwldsym2.exe: ...
make[1]: *** [\S60\devices\S60_3rd_FP2_SDK_v1.1\epoc32\release\WINSCW\udeb\QtCore.dll] Error 1
make: *** [TARGETCORELIB_5104B625] Error 2
make -r -f "\S60\devices\S60_3rd_FP2_SDK_v1.1\EPOC32\BUILD\Qt\4.4.4-temple\WINSCW.make" FINAL CFG=UDEB VERBOSE=-s
[B]Some info:[/B]
- I'm using the 4.4.4 Temple release, but have also already tried using the latest snapshot from 4.1.2009.
- Windows XP SP3 (German)
- Tried it with S60 3rd Edition FP2 and S60 5th Edition SDKs (with patched .ini-file for 5th)
- OpenC Plug-in is installed for S60 3rd FP2
- Calling "mwccsym2.exe -version" does return "Version 3.2.5 build 473 (Build 473)" as expected
- The Symbian-relevant parts of the PATH variable contain: "C:\Qt\4.4.4-temple\bin;C:\Programme\Perl\bin\;C:\Programme\Gemeinsame Dateien\Symbian\Tools;C:\Programme\CSL Arm Toolchain\bin;C:\Programme\Nokia\Carbide.c++ v2.0\x86Build\Symbian_Tools\Command_Line_Tools;C:\Symbian\tools\CTags;%EPOCROOT%epoc32\tools;%EPOCROOT%epoc32\gcc\bin;"
- The "devices" command returns the correct default device, EPOCROOT is set correctly (in case this is relevant)
- Everything is installed to drive C, to the default paths
- Tried to execute everything from Administrator account -> no difference
- I've tried re-installing the SDKs, didn't help
Re: Error when compiling Qt for S60 Emulator
Hi,
The compiler problems are only warnings, not errors. The linker issues are missing standard compiler includes for windows, nothing to do with the actual SDK. The compiler sets up a couple of other environment variables besides the path, I suspect your problem is with those. It should have been set-up correctly by running the "configure for command line builds" option from the menu... you could try running that again, editing the enviroment variables manually (I think they both start MWCC... or similar so they're easy to find) or removing and re-installing Carbide if that doesn't work.
Mark
Re: Error when compiling Qt for S60 Emulator
Hi Mark,
thanks for your help - running the batch-file indeed fixed the issue and I can now successfully compile Qt and run applications in the emulator as well.
Unfortunately, there are still some problems with the indexer in Carbide.c++ 2.0 not correctly recognizing Qt elements (e.g., resulting in the UI designer not offering custom slots in the signals & slots editor), but I'll try to find a solution to that issue before posting again :)
Thanks again!
-Andreas
Re: Error when compiling Qt for S60 Emulator
Hi,
Are you a member of the Carbide 2.0 beta group? It could be a bug (or more likely not yet fully implemented feature) in Carbide. You could post to the list and/or add an entry in the Carbide bugzilla.
Mark
Re: Error when compiling Qt for S60 Emulator
Hi,
It seems u r missing some library in ur mmp file. So its giving the linking errors. Search and add it in ur mmp and then do a clean build.
Re: Error when compiling Qt for S60 Emulator
[QUOTE=mopius;526624]Hi Mark,
thanks for your help - running the batch-file indeed fixed the issue and I can now successfully compile Qt and run applications in the emulator as well.
Unfortunately, there are still some problems with the indexer in Carbide.c++ 2.0 not correctly recognizing Qt elements (e.g., resulting in the UI designer not offering custom slots in the signals & slots editor), but I'll try to find a solution to that issue before posting again :)
Thanks again!
-Andreas[/QUOTE]
Hi Andreas,
I facing a similar problem when I compile for winscw...I ran the "Configure environment for WINSCW command line" batch, but it doesn't fix the issue.
Carbide's output:
mwldsym2.exe: warning: Multiply defined symbol: ___get_MSL_init_count in
mwldsym2.exe: warning: files uc_cwhelp.obj (EEXE.LIB), startup.win32.c.obj (msl_all_static_mse_symbian_d.lib),
mwldsym2.exe: warning: keeping definition in startup.win32.c.obj
mwldsym2.exe: warning: Multiply defined symbol: __CleanUpMSL in
mwldsym2.exe: warning: files uc_cwhelp.obj (EEXE.LIB), startup.win32.c.obj (msl_all_static_mse_symbian_d.lib),
mwldsym2.exe: warning: keeping definition in startup.win32.c.obj
mwldsym2.exe: Undefined symbol: '__declspec(dllimport) int QByteArray::indexOf(class QString const &, int) const (__imp_?indexOf@QByteArray@@QBEHABVQString@@H@Z)'
mwldsym2.exe: referenced from 'int DataParser::nextField(class QByteArray, int &, int) (?nextField@DataParser@@AAEHVQByteArray@@AAHH@Z)' in DataParser.cpp:137
mwldsym2.exe: referenced from 'int DataParser::nextField(class QByteArray, int &, int) (?nextField@DataParser@@AAEHVQByteArray@@AAHH@Z)' in DataParser.cpp:140
Errors caused tool to abort.
Any idea?
My app compiles ok in armv5 BTW
thanks in advance
Re: Error when compiling Qt for S60 Emulator
Are you facing problem in this application only? have you compiled and tested any application on emulator??
Re: Error when compiling Qt for S60 Emulator
Yes, I'm facing this problem only in this app.
Actually, I realized that issue is not present if I directly use the hardcoded string instead of the QString var:
[FONT="Courier New"]QByteArray array;
QString string="my string"
array.indexOf("my string", 0); //the issue is not present anymore
//instead of array.indexOf(string, 0);
[/FONT]
Is there some known issue for that?
Thanks in advance
Re: Error when compiling Qt for S60 Emulator
If you still want to use string variable than you can try something like.
[CODE]QByteArray array;
QString string = "my string";
array.indexOf(string.toAscii(), 0);[/CODE]
Re: Error when compiling Qt for S60 Emulator
Thanks Savaj!!, It's working now in that way.
Cheers!!