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

Olaf Spinczyk Olaf.Spinczyk at informatik.uni-erlangen.de
Thu Sep 15 09:25:48 CEST 2005


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