[aspectc-user] Problem compiling Puma
Olaf Spinczyk
Olaf.Spinczyk at informatik.uni-erlangen.de
Mon Nov 29 16:07:25 CET 2004
Hi Jérôme,
Jérôme Cornet wrote:
> Hello,
>
> i am trying to compile aspect-c++ under Linux with gcc.
>
> When i try to compile ac-0.9-Source-Woven, I get the following error :
>
> Compiling PUMA for TARGET=linux
>
> Making tools.
> Making library.
> Generating.
> Weaving.
> Copying sources not to weave.
> Compiling.
> Compiling PreAssertionEvaluator.cc.
>
> ...
>
> Compiling MatchCollector.cc.
> In file included
> from /home/matthias/Projekte/Cvsdir/Puma/gen/step1/inc/Puma/Syntax.h:27,
> from /home/matthias/Projekte/Cvsdir/Puma/gen/step1/inc/Puma/Parser.h:23,
> from /home/cornet/tools/ac-0.9-Sources-Woven/Puma/gen/step2/inc/Puma/MatchCollector.h:29,
> from /home/cornet/tools/ac-0.9-Sources-Woven/Puma/gen/step2/src/MatchCollector.cc:19:
> /home/cornet/tools/ac-0.9-Sources-Woven/Puma/gen/step2/inc/Puma/TraceSyntax.ah:38:
> error: syntax
> error before `:' token
> /home/cornet/tools/ac-0.9-Sources-Woven/Puma/gen/step2/inc/Puma/TraceSyntax.ah:
> In
> function `void trace_rule(const char*)':
> /home/cornet/tools/ac-0.9-Sources-Woven/Puma/gen/step2/inc/Puma/TraceSyntax.ah:53:
> error: `
> trace' undeclared (first use this function)
> /home/cornet/tools/ac-0.9-Sources-Woven/Puma/gen/step2/inc/Puma/TraceSyntax.ah:53:
> error: (Each
> undeclared identifier is reported only once for each function it appears
> in.)
> /home/cornet/tools/ac-0.9-Sources-Woven/Puma/gen/step2/inc/Puma/TraceSyntax.ah:
> At
> global scope:
> /home/cornet/tools/ac-0.9-Sources-Woven/Puma/gen/step2/inc/Puma/TraceSyntax.ah:56:
> error: syntax
> error before `private'
>
> etc. etc. (full error message available on request).
>
> If I look at TraceSyntax.ah line 38, i get :
>
> aspect TraceSyntax : public Tracing {
> int skipping;
>
> How can the compiler encounter the "aspect" keyword in sources supposed to be
> already woven?
>
> Then i tried to compile the "unwoven" sources (ac-0.9-Sources) on a linux
> machine allowing the linux ac++ binary to work. I get the following error :
>
> Compiling PUMA for TARGET=linux
>
> Making tools.
> Making library.
> Generating.
> Calling Orange on cpp/PreDirectiveTab.ora.
> Calling Orange on cpp/PreExprTab.ora.
> Calling Orange on cpp/PreTokenTab.ora.
> Calling Orange on scanner/ACCKeywordTab.ora.
> Calling Orange on scanner/CCKeywordTab.ora.
> Calling Orange on scanner/CCommentTab.ora.
> Calling Orange on scanner/CCoreTab.ora.
> Calling Orange on scanner/CDirectiveTab.ora.
> Calling Orange on scanner/CIdentifierTab.ora.
> Calling Orange on scanner/CKeywordTab.ora.
> Calling Orange on scanner/CMLCommentTab.ora.
> Calling Orange on scanner/CSLCommentTab.ora.
> Calling Orange on scanner/CStringTab.ora.
> Calling Orange on scanner/CWhitespaceTab.ora.
> Calling Orange on scanner/CWildcardTab.ora.
> Calling Lemon on cpp/PreExprParser.lem.
> Calling Lemon on cpp/PreParser.lem.
> Calling Lemon on manip/CMatchParser.lem.
> Weaving.
> Copying sources not to weave.
> Calling ac++ on PreFileIncluder.cc.
> /home/cornet/tools/ac-0.9-Sources/Puma/gen/step1/inc/Puma/ListElement.h:29:
> error: assert.h: No such file or directory
> /home/cornet/tools/ac-0.9-Sources/Puma/gen/step1/inc/Puma/Printable.h:23:
> error: iostream: No such file or directory
> /home/cornet/tools/ac-0.9-Sources/Puma/gen/step1/inc/Puma/Array.h:24: error:
> assert.h: No such file or directory
> /home/cornet/tools/ac-0.9-Sources/Puma/gen/step1/inc/Puma/VoidPtrArray.h:24:
> error: assert.h: No such file or directory
> /home/cornet/tools/ac-0.9-Sources/Puma/gen/step1/inc/Puma/Token.h:27: error:
> stdlib.h: No such file or directory
> /home/cornet/tools/ac-0.9-Sources/Puma/gen/step1/inc/Puma/Chain.h:28: error:
> iostream: No such file or directory
> /home/cornet/tools/ac-0.9-Sources/Puma/gen/step1/inc/Puma/StrHashTable.h:25:
> error: assert.h: No such file or directory
> /home/cornet/tools/ac-0.9-Sources/Puma/gen/step1/inc/Puma/DString.h:25: error:
> assert.h: No such file or directory
> /home/cornet/tools/ac-0.9-Sources/Puma/gen/step1/inc/Puma/Token.h:33: error:
> assert.h: No such file or directory
>
> ac++ is the static binary for linux. Can someone help?
>
> By the way, it would be great to include a README file explaining how to
> compile aspectc++ (the problem of mutual dependencies between ac++ and ac++)
> in the source tarball and also specific informations about the differences
> between woven/unwoven sources. The current README just explain you have to
> type "make", which is a bit short for newbies like me.
>
> Thanks for your help!
>
> Jérôme Cornet
it should work if you compile with 'make TARGET=linux-release', because
the weaving process (for the woven source code) was done with the
linux-release configuration. The problem is that we don't want to make
woven code for all possible configurations. We simply selected one.
If you want a non-release (debug) build, you have to weave Puma with the
binary ac++ for linux on your own or ask for it directly.
Olaf
More information about the aspectc-user
mailing list