C++ for embedded systems

Nick.SIMON at syntegra.bt.co.uk Nick.SIMON at syntegra.bt.co.uk
Wed Oct 11 05:59:59 UTC 2000


I had this problem with powerPC 860.  Ralf Corsepius sent:

> 
> I guess your problem is originating from the make-exe rule in your
> make/custom/<BSP>.cfg.
> 
> There is a known (and still unfixed) problem with the general
> working principle of make-exe and c++, which for some strange reason
> only shows with some permutations of multilib flags for some
> targets.
> You might try to add -lstdc++ to the make-exe rule in your <BSP>.cfg
> (cf. make/custom/gensh2.cfg - the sh2 is known to suffer from this
> problem).
>

which worked for me.

Best of luck,

-- Nick Simon 

> -----Original Message-----
> From: angelo [mailto:angelo at hunterlink.net.au]
> Sent: 11 October 2000 01:50
> Cc: rtems-users at oarcorp.com
> Subject: Re: C++ for embedded systems
> 
> 
> I seem to be having the problem also that I am not linking 
> with the standard
> C++ libraries also.
> 
> for the following file, I get the link error following.  What 
> must be done to
> solve this?
> 
> #include <iostream>
> #include <fstream>
> 
> int x ()
> {
>   ifstream testfile ("testfile");
>   if (testfile)
>     {
>       cout <<"testfile opened"<<endl;
>       testfile.close();
>     }
>   else
>   {
>     cout<<"unable to open file"<<endl;
>   }
> 
>   return 1;
> }
> 
> *************************************************************
> Error message
> *************************************************************
> 
> /opt/rtems/bin/i386-rtems-gcc --pipe -B/opt/rtems//pc386/lib/ 
> -specs bsp_specs
> -
> qrtems -g -Wall -ansi -fasm  -O4           -L /opt/rtems//pc386/lib
> -Wl,-Ttex
> t,0x00100000 -o o-optimize/smart.obj   o-optimize/mainline.o
> o-optimize/testcpp.
> o  /opt/rtems//pc386/lib/no-dpmem.rel 
> /opt/rtems//pc386/lib/no-event.rel
> /opt/rt
> ems//pc386/lib/no-msg.rel /opt/rtems//pc386/lib/no-mp.rel
> /opt/rtems//pc386/lib/
> no-part.rel /opt/rtems//pc386/lib/no-signal.rel
> /opt/rtems//pc386/lib/no-timer.r
> el /opt/rtems//pc386/lib/no-rtmon.rel
> o-optimize/testcpp.o: In function `x(void)':
> /home/angelo/SmartControl/source/hal_rtems/testcpp.cpp:6: 
> undefined reference
> to
>  `ifstream::ifstream(int, char const *, int, int)'
> /home/angelo/SmartControl/source/hal_rtems/testcpp.cpp:7: 
> undefined reference
> to
>  `ios::operator void *(void) const'
> /home/angelo/SmartControl/source/hal_rtems/testcpp.cpp:9: 
> undefined reference
> to
>  `endl(ostream &)'
> /home/angelo/SmartControl/source/hal_rtems/testcpp.cpp:9: 
> undefined reference
> to
>  `cout'
> /home/angelo/SmartControl/source/hal_rtems/testcpp.cpp:9: 
> undefined reference
> to
>  `ostream::operator<<(char const *)'
> /home/angelo/SmartControl/source/hal_rtems/testcpp.cpp:9: 
> undefined reference
> to
>  `ostream::operator<<(ostream &(*)(ostream &))'
> /home/angelo/SmartControl/source/hal_rtems/testcpp.cpp:10: 
> undefined reference
> t
> o `fstreambase::close(void)'
> /home/angelo/SmartControl/source/hal_rtems/testcpp.cpp:14: 
> undefined reference
> t
> o `endl(ostream &)'
> /home/angelo/SmartControl/source/hal_rtems/testcpp.cpp:14: 
> undefined reference
> t
> o `cout'
> /home/angelo/SmartControl/source/hal_rtems/testcpp.cpp:14: 
> undefined reference
> t
> o `ostream::operator<<(char const *)'
> /home/angelo/SmartControl/source/hal_rtems/testcpp.cpp:14: 
> undefined reference
> t
> o `ostream::operator<<(ostream &(*)(ostream &))'
> /home/angelo/SmartControl/source/hal_rtems/testcpp.cpp:17: 
> undefined reference
> t
> o `ifstream::~ifstream(void)'
> /home/angelo/SmartControl/source/hal_rtems/testcpp.cpp:17: 
> undefined reference
> t
> o `ifstream::~ifstream(void)'
> collect2: ld returned 1 exit status
> make: *** [o-optimize/smart.exe] Error 1
> 
> 
<snip>
> 



More information about the users mailing list