Yes. You're right. That solved all my problems with code completion.
To be precise I added these lines(with defvar with initial value):
(defvar semantic-lex-c-preprocessor-symbol-file '())
(add-to-list 'semantic-lex-c-preprocessor-symbol-file "/usr/include/OGRE/OgrePlatform.h")
Otherwise emacs threw void variable error.

Thanks!

Slava

On Fri, Dec 30, 2011 at 4:51 PM, David Engster <deng@randomsample.de> wrote:
Vyacheslav Gonakhchyan writes:
>>Could you please provide an example, showing what you're trying to
>>complete and what member functions you would expect to appear?
> Attached zip file with project. There are two markers in code(Tut.cpp):

[...]

Thanks; I could reproduce these issues. I think the main problem is with
preprocessor macros in class definitions, like

   class _OgreExport Light : public MovableObject

While you have defined _OgreExport in your project definition, this will
only apply to your own project files, not to system headers. I think the
easiest way to fix this is to use

(add-to-list 'semantic-lex-c-preprocessor-symbol-file
            '"/usr/include/OGRE/OgrePlatform.h")

You'll have to exit Emacs and delete all files in ~/.semanticdb to make
Semantic reparse the headers.

-David