Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
12 years ago

How use altera_avalon_fifi_xxx with a .cpp file ?

Hi,

I try to use altera_avalon_fifo_init() function in .cpp file extension.

The compilation is OK but the linker does't find the function defined in bsp (in library libhal_bsp.a). The error is :

c:\dev\e111\fpga\fit\software\test06/other1.cpp:9: undefined reference to `altera_avalon_fifo_init(unsigned long, unsigned long, unsigned long, unsigned long)'

But, when I rename the file with .c extension, all is ok.

Is it possible to use altera_avalon_fifo_init() (or any functions in BSP) into .cpp file ?

I use Eclipse Indigo. My project is created with "Nios II Application and BSP from Template"

Best regards

Eric

2 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    I remember that if you define a function (i.e. testcpp() ) in a cpp file, you must declare it with the extern "C" directive in order to call it from a .c files.

    extern "C" int testcpp (int n);

    int testcpp (int n)

    {

    /* function body */

    }

    I think you must use something similar for calling .c functions from .cpp source files.