[aspectc-user] Re: Using aspect c++ in symbian
Marti Bayo-alemany
malemany at nero.com
Thu Sep 1 18:53:15 CEST 2005
Hi all,
How are you doing ?
I found out that some of you compile Aspect C++ for symbian.
I am trying to do the same but I am not successful until now.
My issues are the following (Sorry It is actually a really long history) ...
I am trying to compile the example that come with AC called Action. Using the plugin for Visual Studio .NET 2003 it is working really good.
I will compile now from command line...
1. Way using C:\Symbian\7.0s\Series60_v20\Epoc32\include\libc for the headers file.
C:\MySource\ac>ac++ -p examples\Action -d examples\Action-out -Iexamples\Action -v9 -I"C:\Symbian\7.0s\Series60_v20\Epoc32\include\libc"
* Running ac++ 0.9.3
* Simple Dependency Check
- new or modified: examples/Action/Action.ah
* Handling Translation Unit `main.cc'.
- Path "examples/Action/main.cc"
- Inserting namespace AC
- Parsing ...
C:/Symbian/7.0s/Series60_v20/Epoc32/include/libc/stddef.h:13: error: `signed' or `unsigned' invalid for given type
C:/Symbian/7.0s/Series60_v20/Epoc32/include/libc/stdio.h:121: error: invalid declaration near token `FILE'
C:/Symbian/7.0s/Series60_v20/Epoc32/include/libc/stdio.h:122: error: invalid declaration near token `FILE'
C:/Symbian/7.0s/Series60_v20/Epoc32/include/libc/stdio.h:123: error: invalid declaration near token `FILE'
C:/Symbian/7.0s/Series60_v20/Epoc32/include/libc/stdio.h:133: error: invalid declaration near token `FILE'
....
2. Way using C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include for the headers file.
C:\MySource\ac>ac++ -p examples\Action -d examples\Action-out -Iexamples\Action -v9 -I"C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include"
* Running ac++ 0.9.3
* Simple Dependency Check
- new or modified: examples/Action/Action.ah
* Handling Translation Unit `main.cc'.
- Path "examples/Action/main.cc"
- Inserting namespace AC
- Parsing ...
C:/Program Files/Microsoft Visual Studio .NET 2003/Vc7/include/stdio.h:70: error: invalid declaration near token `unsigned'
C:/Program Files/Microsoft Visual Studio .NET 2003/Vc7/include/stdio.h:286: error: invalid declaration near token `__cdecl'
C:/Program Files/Microsoft Visual Studio .NET 2003/Vc7/include/stdio.h:292: error: invalid declaration near token `__cdecl'
C:/Program Files/Microsoft Visual Studio .NET 2003/Vc7/include/stdio.h:313: error: invalid declaration near token `,'
C:/Program Files/Microsoft Visual Studio .NET 2003/Vc7/include/stdio.h:314: error: invalid declaration near token `*'
C:/Program Files/Microsoft Visual Studio .NET 2003/Vc7/include/stdio.h:318: error: invalid declaration near token `const'
C:/Program Files/Microsoft Visual Studio .NET 2003/Vc7/include/stdio.h:326: error: invalid declaration near token `*'
C:/Program Files/Microsoft Visual Studio .NET 2003/Vc7/include/stdio.h:361: error: invalid declaration near token `*'
C:/Program Files/Microsoft Visual Studio .NET 2003/Vc7/include/stdio.h:366: error: `swprintf' already defined
C:/Program Files/Microsoft Visual Studio .NET 2003/Vc7/include/stdio.h:363: previously defined here
C:/Program Files/Microsoft Visual Studio .NET 2003/Vc7/include/stdio.h:371: error: invalid declaration near token `*'
C:/Program Files/Microsoft Visual Studio .NET 2003/Vc7/include/stdio.h:376: error: `vswprintf' already defined
C:/Program Files/Microsoft Visual Studio .NET 2003/Vc7/include/stdio.h:373: previously defined here
C:/Program Files/Microsoft Visual Studio .NET 2003/Vc7/include/stdio.h:381: error: invalid declaration near token `const'
- Aborting
3. Way using "C:\Program Files\Microsoft Visual Studio\VC98\Include"
C:\MySource\ac>ac++ -p examples\Action -d examples\Action-out -Iexamples\Action -v9 -I"C:\Program Files\Microsoft Visual Studio\VC98\Include"
* Running ac++ 0.9.3
* Simple Dependency Check
- new or modified: examples/Action/Action.ah
* Handling Translation Unit `main.cc'.
- Path "examples/Action/main.cc"
- Inserting namespace AC
- Parsing ...
- Setting Aspect Access Priviledges ...
- Weaving Introductions ...
- intros for Action
- intros for ActionB
- Aspect ordering ...
- Final checks before weaving introductions
- Class Join Points
- Weaving Advice Declarations ...
Action::%a0_around
Action::%a1_around
ActionB::%a0_around
ActionB::%a1_around
- Weaving Singleton Aspects ...
- Aspect Includes ...
- Commiting
- Parsing again ...
- Weaving Join Points ...
Advicecode manipulation
Collecting Advice
Setting up thisJoinPoint for aspectof
Supplying aspectof() with JoinPoint and tjp if needed
Action: __a0_around
Evaluate Pointcut
Action: __a1_around
Evaluate Pointcut
Setting up thisJoinPoint for aspectof
Supplying aspectof() with JoinPoint and tjp if needed
ActionB: __a0_around
Evaluate Pointcut
ActionB: __a1_around
Evaluate Pointcut
Aspect ordering ...
Final checks before weaving code join points
Type Check Functions
Call Join Points
int A::a(int,float)
void b(char,char *)
Execution Join Points
int A::a(int,float)
void b(char,char *)
Construction Join Points
Destruction Join Points
- Aspect Includes ...
- Final cleanup
- Commiting
* Handling include files
- Handling Translation Unit `ac_gen.cc'.
Path "examples/Action/ac_gen.cc"
Inserting namespace AC
Parsing ...
Setting Aspect Access Priviledges ...
Weaving Introductions ...
intros for Action
intros for ActionB
Aspect ordering ...
Final checks before weaving introductions
Class Join Points
Weaving Advice Declarations ...
Action::%a0_around
Action::%a1_around
ActionB::%a0_around
ActionB::%a1_around
Weaving Singleton Aspects ...
Aspect Includes ...
Commiting
Parsing again ...
Weaving Join Points ...
Advicecode manipulation
Collecting Advice
Setting up thisJoinPoint for aspectof
Supplying aspectof() with JoinPoint and tjp if needed
Action: __a0_around
Evaluate Pointcut
Action: __a1_around
Evaluate Pointcut
Setting up thisJoinPoint for aspectof
Supplying aspectof() with JoinPoint and tjp if needed
ActionB: __a0_around
Evaluate Pointcut
ActionB: __a1_around
Evaluate Pointcut
Aspect ordering ...
Final checks before weaving code join points
Type Check Functions
Call Join Points
Execution Join Points
Construction Join Points
Destruction Join Points
Aspect Includes ...
Final cleanup
Commiting
* Saving
- Project tree
* Done
With the last one I get a processed cc file on the Action-out directory.
It could be that the issues arise because I am trying to compile a non symbian code, action example, with a symbian stdio.h header.
Another Way, using the makefile
Following I tested to use the makefile.
A pumavc6.cfg was created with the following lines...
-A machine(i386)
-A plattform(win32)
-D __cplusplus
-D _WIN32
-D __cplusplus
-D _WCHAR_T_DEFINED
-D _M_IX86
-D _MSC_VER=1300
-D __STDC__
-I"C:\Program Files\Microsoft Visual Studio\VC98\Include"
Make was executed then succesfully except with the observer pattern example.
ac++ -v1 --config pumavc6.cfg -Iexamples/Action -pexamples/Action -dexamples/Action-out
* Running ac++ 0.9.3
* Simple Dependency Check
* Saving
* Done
copy examples\Action\Makefile examples\Action-out\Makefile
1 file(s) copied.
ac++ -v1 --config pumavc6.cfg -Iexamples/CFlow -pexamples/CFlow -dexamples/CFlow-out
* Running ac++ 0.9.3
* Simple Dependency Check
* Saving
* Done
copy examples\CFlow\Makefile examples\CFlow-out\Makefile
1 file(s) copied.
ac++ -v1 --config pumavc6.cfg -Iexamples/Cache -pexamples/Cache -dexamples/Cache-out
* Running ac++ 0.9.3
* Simple Dependency Check
* Saving
* Done
copy examples\Cache\Makefile examples\Cache-out\Makefile
1 file(s) copied.
ac++ -v1 --config pumavc6.cfg -Iexamples/FigureObserver -pexamples/FigureObserver -dexamples/FigureObserver-out
* Running ac++ 0.9.3
* Simple Dependency Check
* Saving
* Done
copy examples\FigureObserver\Makefile examples\FigureObserver-out\Makefile
1 file(s) copied.
ac++ -v1 --config pumavc6.cfg -Iexamples/ID -pexamples/ID -dexamples/ID-out
* Running ac++ 0.9.3
* Simple Dependency Check
* Saving
* Done
copy examples\ID\Makefile examples\ID-out\Makefile
1 file(s) copied.
ac++ -v1 --config pumavc6.cfg -Iexamples/IconCache -pexamples/IconCache -dexamples/IconCache-out
* Running ac++ 0.9.3
* Simple Dependency Check
* Saving
* Done
copy examples\IconCache\Makefile examples\IconCache-out\Makefile
1 file(s) copied.
ac++ -v1 --config pumavc6.cfg -Iexamples/Instances -pexamples/Instances -dexamples/Instances-out
* Running ac++ 0.9.3
* Simple Dependency Check
* Saving
* Done
copy examples\Instances\Makefile examples\Instances-out\Makefile
1 file(s) copied.
ac++ -v1 --config pumavc6.cfg -Iexamples/ObserverPattern -pexamples/ObserverPattern -dexamples/ObserverPattern-out
* Running ac++ 0.9.3
* Simple Dependency Check
* Handling Translation Unit `AnalogClock.cc'.
C:/Program Files/Microsoft Visual Studio/VC98/Include/stdlib.h:260: error: invalid declaration near token `void'
C:/Program Files/Microsoft Visual Studio/VC98/Include/stdlib.h:261: error: invalid declaration near token `void'
C:/Program Files/Microsoft Visual Studio/VC98/Include/stdlib.h:353: error: invalid declaration near token `void'
C:/Program Files/Microsoft Visual Studio/VC98/Include/eh.h:67: error: invalid declaration near token `void'
C:/Program Files/Microsoft Visual Studio/VC98/Include/eh.h:68: error: invalid declaration near token `void'
C:/Program Files/Microsoft Visual Studio/VC98/Include/xtree:68: error: `iterator' has no member named `_Ptr'
C:\Symbian\7.0s\Series60_v20\epoc32\tools\make.exe: *** [ObserverPattern.make] Error 1
After that, I've gotten a Makefile into the Action-out directory.
The makefile is the following ...
C:\MySource\ac\examples\Action-out>type Makefile
CXX ?= cl
action: main.cc
$(CXX) $(CXXFLAGS) -o action main.cc -I"C:\Program Files\Microsoft Visual Studio\VC98\Include"
I get however extrange errors with the spaces on the path.
C:\MySource\ac\examples\Action-out>make
C:\Symbian\7.0s\Series60_v20\epoc32\tools\make.exe: *** No rule to make target `/Program', needed by `main.cc'. Stop.
I tried then to use the following command ...
C:\MySource\ac\examples\Action-out>cl -o action main.cc -I"C:\Program Files\Microsoft Visual Studio\VC98\Include"
I get then the following result ...
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8804 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
Command line warning D4024 : unrecognized source file type 'main.cc', object file assumed
Microsoft (R) Incremental Linker Version 6.00.8447
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.
/out:main.exe
/out:action.exe
main.cc
main.cc : fatal error LNK1136: invalid or corrupt file
So I rename the main.cc to main.cpp and try again.
I get now a different error.
C:\MySource\ac\examples\Action-out>cl -o action main.cpp -I"C:\Program Files\Microsoft Visual Studio\VC98\Include"
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8804 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
main.cpp
(6) : error C2252: 'JPID' : pure specifier can only be specified for functions
(7) : error C2258: illegal pure syntax, must be '= 0'
(7) : error C2252: 'JPTYPE' : pure specifier can only be specified for functions
(4) : error C2100: illegal indirection
(4) : error C2100: illegal indirection
(4) : error C2664: '__exec_old_a' : cannot convert parameter 1 from 'void *' to 'int'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast
(4) : fatal error C1903: unable to recover from previous error(s); stopping compilation
I've just found a bat file inside
C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin
... which it is called ... vcvars32.bat
I executed that script from the comand line and then I execute ...
C:\MySource\ac\examples\Action-out>cl -o action main.cpp -I"C:\Program Files\Microsoft Visual Studio\VC98\Include"
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.3077 for 80x86
Copyright (C) Microsoft Corporation 1984-2002. All rights reserved.
main.cpp
Microsoft (R) Incremental Linker Version 7.10.3077
Copyright (C) Microsoft Corporation. All rights reserved.
/out:main.exe
/out:action.exe
main.obj
So I get a main.exe with the headers from "C:\Program Files\Microsoft Visual Studio\VC98\Include" and the compiler VC7. !!!????
The result is the following ...
C:\MySource\ac\examples\Action-out>action
A: before(call) int A::a(int,float)
that : 00000000
target: 0012FEE3
B: before(call) int A::a(int,float)
that : 00000000
target: 0012FEE3
A: before(exec) int A::a(int,float)
that : 0012FEE3
target: 0012FEE3
B: before(exec) int A::a(int,float)
that : 0012FEE3
target: 0012FEE3
inside A::a(4711, 3.140000)
B: after(exec) int A::a(int,float)
A: after(exec) int A::a(int,float)
B: after(call) int A::a(int,float)
A: after(call) int A::a(int,float)
A: before(call) void b(char,char *)
that : 00000000
target: 00000000
B: before(call) void b(char,char *)
that : 00000000
target: 00000000
A: before(exec) void b(char,char *)
that : 00000000
target: 00000000
B: before(exec) void b(char,char *)
that : 00000000
target: 00000000
inside b(H, ello World)
B: after(exec) void b(char,char *)
A: after(exec) void b(char,char *)
B: after(call) void b(char,char *)
A: after(call) void b(char,char *)
The problem actually is that I cannot get the gcc to compile the code which I need to compile for ARM processors.
If I try to use GCC I get the problem which follows ...
C:\MySource\ac\examples\Action-out>gcc -o action main.cpp -I"C:\Program Files\Microsoft Visual Studio\VC98\Include"
gcc.exe: Files\Microsoft: No such file or directory
gcc.exe: Visual: No such file or directory
gcc.exe: Studio\VC98\Include: No such file or directory
In file included from :1:
examples/Action/Action.ah:1:19: stdio.h: No such file or directory
examples/Action/main.cc:1:19: stdio.h: error 0
C:\MySource\ac\examples\Action-out>gcc --version
3.0-psion-98r2
I test another way. I set up the path as follows ...
C:\MySource\ac\examples\Action-out>set PATH=C:\Symbian\7.0s\Series60_v20\Epoc32\tools;%PATH%
At that moment the make.exe from symbian will be used.
I get then a different error from the make utility.
C:\MySource\ac\examples\Action-out>make
gcc -o action main.cpp -I"C:\Program Files\Microsoft Visual Studio\VC98\Include"
In file included from examples/Action/Action.ah:1,
from :1:
C:/Program Files/Microsoft Visual Studio/VC98/Include/stdio.h:23:2: #error ERROR: Only Mac or Win32 targets supported!
In file included from examples/Action/Action.ah:1,
from :1:
C:/Program Files/Microsoft Visual Studio/VC98/Include/stdio.h:310: warning: new
declaration `int fprintf(FILE*, const char*, ...)'
C:/Program Files/Microsoft Visual Studio/VC98/Include/stdio.h:310: warning: ambiguates
built-in declaration `int fprintf(void*, const char*, ...)'
make: *** [action] Error 1
I add the following to the gcc -D _WIN32.
The makefile is now that ...
CXX2 ?= gcc
action: main.cpp
$(CXX2) $(CXXFLAGS) -o action main.cpp -I "C:\Program Files\Microsoft Visual Studio\VC98\Include" -D _WIN32
And I get the last :-) error which I totally ignore what it is...
gcc -o action main.cpp -I "C:\Program Files\Microsoft Visual Studio\VC98\Include" -D _WIN32
In file included from examples/Action/Action.ah:1,
from :1:
C:/Program Files/Microsoft Visual Studio/VC98/Include/stdio.h:310: warning: new
declaration `int fprintf(FILE*, const char*, ...)'
C:/Program Files/Microsoft Visual Studio/VC98/Include/stdio.h:310: warning: ambiguates
built-in declaration `int fprintf(void*, const char*, ...)'
/Symbian/7.0s/Series60_v20/Epoc32/gcc/arm-epoc-pe/bin/ld: cannot open crt0.o: No such file or directory
collect2: ld returned 1 exit status
make: *** [action] Error 1
Any idea what I am doing wrong ? Have you already success to compile projects with aspect c++ for Symbian ? Is it robust enough ?
Thanks for any tip.
Best wishes,
Marti
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.aspectc.org/pipermail/aspectc-user/attachments/20050901/171a2688/attachment.html>
More information about the aspectc-user
mailing list