Compiling from the command line
I'm trying to compile a HelloBrad project from the command line. After compiling the project once (to generate the makefiles etc) I then tried:
[FONT=Courier New]C:\USERS\workareas\carbide\HelloBrad\S60 3.0 Emulator Debug>set EPOCROOT=C:\APPS\Symbian\9.1\S60_3rd\
C:\USERS\workareas\carbide\HelloBrad\S60 3.0 Emulator Debug>make
ERROR: EPOCROOT must be an absolute path, not containing a drive letter.[/FONT]
Fair enough. So I reset %EPOCROOT% to no contain a drive letter:
[FONT=Courier New]C:\USERS\workareas\carbide\HelloBrad\S60 3.0 Emulator Debug>set EPOCROOT=\APPS\S
ymbian\9.1\S60_3rd\
C:\USERS\workareas\carbide\HelloBrad\S60 3.0 Emulator Debug>make
'Building file: ../src/HelloBrad.cpp'
'Invoking: WINSCW C/C++ Compiler'
mwccsym2.exe -sym full -c -wchar_t off -align 4 -enum int -str pool -nostdinc -e
xc ms -inline off -msgstyle parseable -nowraplines -O0 -D_UNICODE -D__SYMBIAN32_
_ -D__CW32__ -D__WINS__ -D__EXE__ -D__WINSCW__ -D_DEBUG -D__SUPPORT_CPP_EXCEPTIO
NS__ -D__SERIES60_30__ -D__SERIES60_3X__ -include "[B]\APPS\Symbian\9.1\S60_3rd\epo
c32\include\variant\Symbian_OS_v9.1.hrh[/B]" -i "C:\USERS\workareas\carbide\HelloBra
d\inc" -i "C:\USERS\workareas\carbide\HelloBrad\data" -i- -i "\APPS\Symbian\9.1\
S60_3rd\epoc32\include" -i "\APPS\Symbian\9.1\S60_3rd\epoc32\include\variant" -w
cmdline -w pragmas -w empty -w possible -w unusedarg -w unusedvar -w extracomma
-w pedantic -w largeargs -w ptrintconv -w tokenpasting -w missingreturn -o src/
HelloBrad.o ../src/HelloBrad.cpp
mwccsym2.exe|Compiler|Error
(C:\USERS\workareas\carbide\HelloBrad\S60 3.0 Emulator Debug\(command-line defin
es)|12|9|70|251|70)
=#include "\APPS\Symbian\9.1\S60_3rd\epoc32\include\variant\Symbian_OS_v9.1.hrh"
>the file '\APPS\Symbian\9.1\S60_3rd\epoc32\include\variant\Symbian_OS_v9.1.hrh'
cannot be opened
mwccsym2.exe|Compiler|Error
(C:\USERS\workareas\carbide\HelloBrad\src\HelloBrad.cpp|17|33|1|448|1)
= return new CHelloBradApplication;
>illegal use of abstract class ('CApaApplication::OpenAppInfoFileLC() const')
Errors caused tool to abort.
C:\apps\Symbian\9.1\S60_3rd\epoc32\tools\make.exe: *** [src/HelloBrad.o] Error 1
C:\USERS\workareas\carbide\HelloBrad\S60 3.0 Emulator Debug>[/FONT]
Um, \APPS\Symbian\9.1\S60_3rd\epoc32\include\variant\Symbian_OS_v9.1.hrh exists just fine.
So, it seems that there is either a bug in the compiler (since it didn't find the header unless the drive letter is included in EPOCROOT) or there is a problem the make system (for requiring no drive letter to be included in EPOCROOT).
I don't have access to the compiler source but I dug around in the make system.
Commenting out lines 254 and 255 of C:\Program Files\Common Files\Symbian\tools\tlaunch.pm and setting EPOCROOT to include the drive letter seems to make the problem go away.
Are those lines in tlaunch.pm a bug, or is there a valid reason for EPOCROOT to not include a drive letter?
Thanks
Bradley
Re: Compiling from the command line
Using the Carbide-generated make files from outside Carbide.c++ Express is NOT supported. Carbide.c++ generates the make files for the exclusive use of the Carbide build system. There has never been any intention that what you seem to be trying to do will work (if I understand your question correctly).
Also, if you modify the perlscripts etc, you might break building from inside Carbide. Note also that any makefiles etc associated with Carbide are generated and any changes that you make them will be overwritten without notice.
Re: Compiling from the command line
Hi,
Thanks for the prompt response.
[QUOTE=mitts]if I understand your question correctly.[/QUOTE]
I am trying to do compile a simple S60 application using Carbide.c++ Express from the command line. I've managed to get this working but it involves a small hack to the SDK build system.
So, I guess my question could be rephrased - how do you compile a HelloWorld S60 application using Carbide.c++ Express from the command line?
Thanks
Bradley
Re: Compiling from the command line
Hi,
As I indicated, there is no supported way to compile using Carbide.c++ Express build system from the command line. Modifying the make-files or the build scripts is not supported and if you do that then you are on your own. Also we reserve the right to make any changes to the build system so there is no guarantee that something that works for this version will also work in the future.
If you feel that you need to use command line building, then you should use the SDK command line tools, see the SDK Help for details.
However you should note that the Carbide.c++ product family has not been designed to co-exist with command line building, so for instance it does not use nor update the .mmp file. If you want to use the command line tools, you need to manually maintain an .mmp file for the project.