[aspectc-user] Re: Symbian meet Aspect C++

Marti Bayo-alemany malemany at nero.com
Thu Sep 15 10:13:54 CEST 2005


Hi Olaf and Fabian,

I am feeling a little bit guilty for the record ,-)

That is my line ...

STU
ac++ --no_line --skip-bodies-non-prj --no_problem_spec_scope --gnu-2.95 -D_DEBUG 
 -D_UNICODE -D__SYMBIAN32__ -D__GCC32__ -D__EPOC32__ -D__MARM__ -D__MARM_ARMI__ 
 -D__DLL__ -e cpp -c src-ah-in\NPlatformGUI_Symbian.cpp  -o 
src-ah-out\NPlatformGUI_Symbian.cpp  -p .  -a 
aspects\aspect.ah -I\"C:\Symbian\7.0s\Series60_v20\Epoc32\include-aspects\"  
-I\"C:\Symbian\7.0s\Series60_v20\Epoc32\include-aspects\libc\" -I"..\Include" 
 -I"..\..\..\nero_gui\GuiFileService" -I"..\..\Common" -I"..\..\Common\VideoOutputter" 
 -I"..\..\..\SDK" -I"..\..\FrameContatcher" -I"..\..\FrameContatcher\Util" -I"..\..\..\..\NeroHAL\include" 
 -I"..\..\..\..\NeroHAL\include\inline" -I"..\..\..\..\GapiDraw35\include\Symbian" 
 -I"..\..\..\core" -I"..\..\..\component_manager" -I"..\..\..\..\PerformanceLibs\helpers\armcpuid" 
 -I"..\..\..\..\PerformanceLibs\ipp_wmmx" -I"..\..\..\..\DecoderLibs\dm4v" -I"..\..\..\..\..\..\Symbian\7.0s\Series60_v20\Epoc32\include\mda\common\" 
 -I"\epoc32\include" -I"\epoc32\include\libc"

I don't know how I should to change it in order to make it work.
The cpp files are in only one directory. The headers are splitted into a lot 
of different directories.

Best wishes
Marti


----- Original Message ----- 
From: "Olaf Spinczyk" <Olaf.Spinczyk at informatik.uni-erlangen.de>
To: <fabian.scheler at gmail.com>
Cc: "Marti Bayo-alemany" <malemany at nero.com>; <aspectc-user at aspectc.org>
Sent: Thursday, September 15, 2005 9:25 AM
Subject: Re: [aspectc-user] Re: Symbian meet Aspect C++


> Hi,
>
> we just established a new record of postings per month ;-).
>
> Marti, you don't need the -i option. This is only needed by people who use 
> the STU mode to produce a library. In this special case, the *.cc/cpp 
> files are compiled with -c. The weaver expands the header files that 
> belong to the project (-p option(s)) automatically in the generated 
> *.cc/cpp files. Therefore, for the translation of the library itself 
> nothing else is needed. However, users who want to link their applications 
> with the library need transformed header files. In order to provide these 
> header files, the library developer has to use the -i option, which 
> transforms the header files of the project all at once.
>
> The bug, which you have described, is strange, because the generation of 
> the declaration of the exec_old_... function is a quite fundamental 
> transformation, which definitely works.
>
> I guess that your header files are located in a different directory than 
> the *.cpp files and that you didn't use a -p <src> -d <dest> pair for the 
> header file directory. Therefore, ac++ doesn't *know* that these files 
> belong to your project and doesn't transform them.
>
> How does your directory structure (and your command line) look like?
>
> -Olaf
>
>
> Fabian Scheler wrote:
>> Hi Marti,
>>
>>>However what does it means other_stuff_you_need ?
>>>-i <other_stuff_you_need>
>>>Do you have to define all your include files behind the -i ?
>>
>> no, <other_stuff_you_need> has nothing to do with the option '-i',
>> <other_stuff_you_need> are just other options you may need for some
>> reason. I expressed this a bit awkwardly.
>>
>>>I am just wondering about that not because I need to do library. The main
>>>reason is the error I am having ...
>>>
>>> ../SRC-AH-OUT/Guihelperclasses.cpp:1248: no `void
>>>NConfigDataGUI::__exec_old_SetEqualizerPresetSelection(long unsigned 
>>>int)'
>>>    member function declared in class `NConfigDataGUI'
>>>
>>> It makes sense because the following method is not defined ...
>>> __exec_old_SetEqualizerPresetSelection
>>
>> hm, this is strange. Normally ac++ expands all headers in the woven
>> source file, so also the header where class `NConfigDataGUI' is
>> defined should be expanded inside Guihelperclasses.cpp, and there a
>> proper declaration of __exec_old_SetEqualizerPresetSelection should be
>> woven into the class definition. By the way, you are complaining about
>> a missing declaration, not a missing definition, do you? In your
>> preceeding postings you also posted a definition:
>>
>> inline void 
>> NConfigDataGUI::__exec_old_SetEqualizerPresetSelection(unsigned
>> long int value){
>>  m_iEqualizerPresetSelection = value;
>> }
>>  I can only think of two possibilities:
>>
>> 1. The header containing the definition of class `NConfigDataGUI' is
>> somehow not included into the file Guihelperclasses.cpp, but then ac++
>> should complain about that. This would be a bug within the parser of
>> ac++, that seems pretty improbable to me.
>> 2. A bug in the code generation, what in this case seems also quite
>> improbable to me.
>>
>> I must be missing something ... are there any typedefs or macros that
>> somehow affect this class?
>>
>> Maybe Olaf knows more???
>>
>> Ciao, Fabian
>>
>> _______________________________________________
>> 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