Hi all.
I'm using EDK 8.2.02i. ISE: 8.2.03i. Board: Spartan 3E Xilinx Starter Kit Rev.D
I'd like use C++ for my SW project but I have found problems...
1) Using namespace --------------- In my code application.h I have written:namespace prova1{ int a=5; };
namespace prova2{ int a=10; int b=8; };
Then to make a test in my application.cc :
printf("prova1::a = %d \n", prova1::a); printf("prova2::a = %d \n", prova2::a); printf("prova2::b = %d \n", prova2::b);
So I expect to see in my terminal right values, but what really happen is:
prova1::a = 5 prova2::a = 5 prova2::b = 8
So system show and see only the first "a".
Moreover, and this is incredible, if in my makefile I compile using -0s optimization (size) then no error happen in linking. But if i DON'T USE ANY OPTIMIZATION this error occurs:
* *********************************************************************************** Creating target elf file... mb-g++ -Wl,-defsym -Wl,_TEXT_START_ADDR=0x22000C00-o ./application.elf -Wall -g application.cc \ -I../microblaze_0/include/
-I../Libs/ \ -L../microblaze_0/lib/ -L../Libs/ -LD:\EDK/gnu/microblaze/nt/mi croblaze/lib -LD:\EDK/gnu/microblaze/nt/include/C++/3.4.1/ -lcommon -lstdc++ /cygdrive/c/DOCUME~1/alettoal/LOCALS~1/Temp/cc31lsQU.s: Assembler messages: /cygdrive/c/DOCUME~1/alettoal/LOCALS~1/Temp/cc31lsQU.s:102: Fatal error: Symbol a already defined. make: *** [application.elf] Error 1
* ***********************************************************************************2) Using simple class ------------------
In my application.h :
class Cliente { public: char name[20]; char surname[20]; void p() { printf("Client::p\n"); } virtual void insert_name( void ) = 0; };
class ClienteD : public Cliente { public: void insert_name() { printf("insert_name ClientD\n"); } void p() { printf("ClientD::p\n"); } };
In my application.cc :
...
ClienteD pippo; ...
ClienteD* cliente = new ClienteD(); cliente->insert_name(); cliente->p();
Cliente* base = new ClienteD(); base->insert_name(); base->p();
pippo.p();
But when I see my terminal window NOTHING, NO any printf() Appear !
KEEP IN MIND that the SAME application (Example 2) only) I used for testing C++ with EDK 8.1.01i and all was fine ! Why now I have all these problem ?
Thanks in advance for any answers !
Cheers,
Al.