[aspectc-user] Compiling helloworld aspect C++ on Symbian

Olaf Spinczyk Olaf.Spinczyk at informatik.uni-erlangen.de
Fri Sep 2 15:51:40 CEST 2005


Hi,

I don't know if it is related to your problem but the command line ...

..\..\ac\ac++ -p . --skip-bodies-non-prj --no_problem_spec_scope 
--gnu-2.95 -d helloworld-out -I.  -D_DEBUG -D_UNICODE -D__SYMBIAN32__ 
-D__GCC32__ -D__EPOC32__ -D__MARM__ -D__MARM_ARMI__ -D__DLL__

... which I found in your previous mail is not correct:

You are using the Whole Program Transformation mode here (see Compiler 
Manual) and the destination directory (-d option) is a subdirectory of 
the source directory (-p option). This might cause trouble! Better use 
-d ../somedirectory.

Olaf

Marti Bayo-alemany wrote:
> Hi,
> 
> It was nice :-) It worked if I set up that ...
>  advice execution("% CEXampleApplication::%(...)") : around()  {
> Now I set up ...
>  advice execution("% CEXampleApplication::%(...)") : around()  {
> and I've got some problems...
> 
> In file included from :1,
>                 from source/helloworld_application.cpp:14:
> source/aspect.ah:4: syntax error before `{' token
> source/aspect.ah:7: syntax error before `.' token
> source/aspect.ah:8: ISO C++ forbids declaration of `Write' with no type
> source/aspect.ah:8: `int RFileLogger::Write' is not a static member of 
> `class
>   RFileLogger'
> source/aspect.ah:8: initializer list being treated as compound expression
> source/aspect.ah:8: cannot convert `TPtrC' to `int' in initialization
> source/aspect.ah:10: syntax error before `->' token
> source/aspect.ah:12: syntax error before `.' token
> source/aspect.ah:13: ISO C++ forbids declaration of `Write' with no type
> source/aspect.ah:13: `int RFileLogger::Write' is not a static member of 
> `class
>   RFileLogger'
> source/aspect.ah:13: initializer list being treated as compound expression
> source/aspect.ah:13: cannot convert `TPtrC' to `int' in initialization
> source/aspect.ah:15: parse error before `}' token
> 
> The aspect.ah code is the following...
> 
> #include <flogger.h>
> #include <e32std.h>
> 
> aspect Action {
>  advice execution("% CExampleApplication::%(...)") : around()  {
>    TBuf<100> l_Message;
>    l_Message.Format(_L("CExampleApplication: before(exec) 
> %s\n"),JoinPoint::signature());
>    
> RFileLogger::Write(_L("NSTMLogDir"),_L("AspectsTest"),EFileLoggingModeOverwrite,_L("Test")); 
> 
> 
>    tjp->proceed();
> 
>    l_Message.Format(_L("CExampleApplication: after(exec) 
> %s\n"),JoinPoint::signature());
>    
> RFileLogger::Write(_L("NSTMLogDir"),_L("AspectsTest"),EFileLoggingModeOverwrite,_L("Test")); 
> 
> 
>  }
> };
> 
> Best regards,
> Marti
> 
> ----- Original Message ----- From: "Olaf Spinczyk" 
> <Olaf.Spinczyk at informatik.uni-erlangen.de>
> To: "Marti Bayo-alemany" <malemany at nero.com>
> Cc: <aspectc-user at aspectc.org>
> Sent: Friday, September 02, 2005 3:33 PM
> Subject: Re: [aspectc-user] Compiling helloworld aspect C++ on Symbian
> 
> 
>> Hi,
>>
>> Marti Bayo-alemany wrote:
>>> It seems that Aspect C++ doesn't support __declspec(dllexport)  which 
>>> is needed in order to get an application running on Symbian
>>>  #define *EXPORT_C* __declspec(dllexport)
>>> EXPORT_C CApaApplication* NewApplication()
>>>  I get that ...
>>> invalid declaration near token `dllexport'
>>>  I comment the EXPORT_C before ac++ and I added after EXPORT_C 
>>> manually to the file generated.
>>
>> you should try to generate your parser configuration file with
>>
>> ag++ -o <parser config file> --gen_config --c_compiler <your g++>
>>
>> I guess, that __declspec is predefined as __attribute__ by the symbian 
>> g++. Generating the config file will retrieve all the predefined 
>> macros and include files from g++.
>>
>>> The application compiles and it runs on the mobile phone.
>>>  However is still not doing what I am expecting but I am on the way.
>>
>> Fine, it seems that you have faster success than Bil one year ago.
>>
>> Best regards,
>>
>> Olaf
>>
>>
> 
> _______________________________________________
> aspectc-user mailing list
> aspectc-user at aspectc.org
> http://www.aspectc.org/mailman/listinfo/aspectc-user




More information about the aspectc-user mailing list