Problem with C++ in Tornado - VxWorks

This is a discussion on Problem with C++ in Tornado - VxWorks ; I am a green hand with the Vxworks.Now ,I met some problems with C++. I want U can help me. I use Tornado forPPC 2.0 , the project runs on moto's MVME5500. In a project: I made two files one ...

+ Reply to Thread
Results 1 to 4 of 4

Thread: Problem with C++ in Tornado

  1. Problem with C++ in Tornado

    I am a green hand with the Vxworks.Now ,I met some problems with C++.
    I want U can help me.

    I use Tornado forPPC 2.0 , the project runs on moto's MVME5500.

    In a project: I made two files
    one is "matirx.cpp" , it is a "class"of matirx.
    Anothe is "kalmanfilter.cpp" , it is a demo of kalmanfilter,which
    use the class of matrix.

    Also ,I put a "matrix.h " in the project folder,which is
    "F:\Tornado2.2ppc\target\proj\Projectkalman",


    The problem is : this project can be compile successfully,
    It can be download, but "Unresolved symbols encounted while
    Errors while downloading
    F:/Tornado2.2new/target/proj/Project6/PPC604gnu/765_Kalman_C++.out:
    __cl__7CMatrixUiUi",
    It also can runs but dead while running .

    This files are made by VC++6.0, and can run successfully on a PC.


    So,I don't know how to resovle.
    I doubt :
    Is the location of "matrix.cpp" and "matrix.h"OK?
    Is the bulid options need be modified ?
    Is there big difference between "VC++" and "GNU C++" ?

    Can you explain the essential kenoledge about useing C++ in Tornado
    ?Thanks very much


  2. Re: Problem with C++ in Tornado



    ()(。*(00)*。)()


    I have conqure this problem by injecting the "class matrix" into the
    file of "kalman.cpp"


    but ,Who can tell is there any standard ways to add my class into the
    project ?


  3. Re: Problem with C++ in Tornado

    Hello heartofdra,
    I have two questions for you:
    1. Did you configure the Vxworks on your VMEboard to contain C++
    runtime environment? This is to be done in the BSP / bootable
    VxWorks project under the VxWorks tab.
    2. Did you build/download the out file or the object files?

    When you get the unresolved references on download time, the code is
    placed in the target and is callable, but the unresolved references are
    stil there. This is different to the Visual Studio process, where the
    linkage happens completely before "downloading".
    Tip: Include the application files in an bootable VxWorks project, so
    the Linking stage is done on the host.

    Hope it helps!

    --
    BaSystem Martin Raabe
    E: Martin.RaabeB-a-S-y-s-t-e-mde

  4. Re: Problem with C++ in Tornado

    On 12 Jan 2006, heartofdra@gmail.com wrote:

    > The problem is : this project can be compile successfully,
    > It can be download, but "Unresolved symbols encounted while
    > Errors while downloading
    > F:/Tornado2.2new/target/proj/Project6/PPC604gnu/765_Kalman_C++.out:
    > __cl__7CMatrixUiUi",
    > It also can runs but dead while running .


    Any time you have unresolved symbols, you will jump to an NULL pointer
    when making this function call. You question would be what is
    "__cl__7CMatrixUiUi". You can thank Bjarne Stroustrup for this
    questions. The best answer is to use "c++filt". This is a program
    that comes with C++ compilers that unmangles names. In your case, you
    don't have the constructor to the CMatrix(unsigned int row=0, unsigned
    int col=0);

    > This files are made by VC++6.0, and can run successfully on a PC.


    A PC does many things for you. The environment will have everything
    set up to work. You have to know many more details if you want to
    program embedded systems. If you use this "excuse", you should stop
    trying embedded development.

    It is always more efficient to prototype on a PC. However, your
    runtime environment is different. You might use static constructors,
    poor language constructs, compiler specific idioms, etc. Prototyping
    with 'C' is usually much closer to vxWorks than C++. C++ has many
    extra demands that must be configured/attended to get things working
    on vxWorks. Finally, some of the C++ support on vxWork seems like an
    after-though. However, you should at least read the vxWorks
    documentation on C++ development.

    Fwiw,
    Bill Pringlemeir.

    --
    Washing one's hands of the conflict between the powerful and the
    powerless means to side with the powerful, not to be neutral. - Freire

    vxWorks FAQ, "http://www.xs4all.nl/~borkhuis/vxworks/vxworks.html"

+ Reply to Thread