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