Forum Discussion
Altera_Forum
Honored Contributor
21 years ago*new* problem
I'm trying to create a C++ application for uClinux. Really all I need to do is include a class that I created. If I make a pointer to the class and then try to create a new instance of it, I get erros. If I try to create a static instance of the class I get errors.
using new: // Class name and then pointer name Amd032 *p_AudioMem; // Pointer name = new instance of my class p_AudioMem = new Amd032; errors: (weird ones at the top to long to list) undefined refernce to 'Amd032::Amd032()' undefined reference to 'operator delete(void*)' staticly: Amd032 AudioMem; Neither method works. Is there way around this? Does new work? Thank you!!7 Replies
- Altera_Forum
Honored Contributor
--- Quote Start --- originally posted by randog77@Jun 20 2005, 11:40 PM i'm trying to create a c++ application for uclinux. really all i need to do is include a class that i created. --- Quote End --- gcc does support new http://forum.niosforum.com/work2/style_emoticons/<#EMO_DIR#>/rolleyes.gif (duh!) make certain that you use the C++ compiler:
and not the gcc binary (C compiler). If I were you, I'd think twice about writing C++ for a nommu arch http://forum.niosforum.com/work2/style_emoticons/<#EMO_DIR#>/blink.gif but that might just be me ...g++ -o myprog -Wl,-efl2flt myfile.c - Altera_Forum
Honored Contributor
Hi
I had problems creating objects dynamically with new. gcc compiles ok, but in runtime, my application crashes and uClinux restarts when it reach to new sentence. If I change my application to use static objects, it works OK. Any Idea? Màrius - Altera_Forum
Honored Contributor
--- Quote Start --- originally posted by mariusmm@Jun 21 2005, 01:12 PM gcc compiles ok, but in runtime, my application crashes and uclinux restarts when it reach to new sentence. --- Quote End --- looks your program is using to much process memory (you cannot relocate with nommu). Try to add more stack space using flthdr. - Altera_Forum
Honored Contributor
In the Makefile if I change
DEBUG = 1 to DEBUG = 0 my problem goes away. Strange. Thanks! - Altera_Forum
Honored Contributor
mariusMM my program does the same thing as yours now. Dough! Crashes a the new allocation.
what is flthdr?? I looked for that as a C++ function, I found nothing. Thanks! - Altera_Forum
Honored Contributor
flthdr is a nios2 console command.
It can increase stack size. I've not tested it yet. Màrius - Altera_Forum
Honored Contributor
--- Quote Start --- originally posted by randog77@Jun 21 2005, 05:11 PM what is flthdr?? --- Quote End --- I am using my own toolchain on GNU/Linux, but this tools should be available in a Windows install too.$ flthdr No input files provided usage: flthdr flat-file Allows you to change an existing flat file -p : print current settings -z : compressed flat file -d : compressed data-only flat file -Z : un-compressed flat file -r : ram load -R : do not RAM load -k : kernel traced load (for debug) -K : normal non-kernel traced load -s size : stack size -o file : output-file (default is to modify input file) $ flthdr -p interface interface Magic: bFLT Rev: 4 Build Date: Wed Jun 22 11:10:40 2005 Entry: 0x44 Data Start: 0xa080 Data End: 0xedb8 BSS End: 0x10e2c Stack Size: 0x1000 Reloc Start: 0xedb8 Reloc Count: 0x696 Flags: 0x1 ( Load-to-Ram ) $ flthdr -s 8192 interface $ flthdr -p interface interface Magic: bFLT Rev: 4 Build Date: Wed Jun 22 11:10:40 2005 Entry: 0x44 Data Start: 0xa080 Data End: 0xedb8 BSS End: 0x10e2c Stack Size: 0x2000 Reloc Start: 0xedb8 Reloc Count: 0x696 Flags: 0x1 ( Load-to-Ram )