This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

EWARM linker function redefinition problem

In one 'c' file I define the following function:

void fnTemp(int jj, int kk);

void fnTemp(int jj, int kk)

{

     ...do some stuff...

}

In a different 'c' file I have the following:

extern void fnTemp(int jj);

void fnTryIt(void)

{

    fnTemp(3);

}

This will link without any errors. How do I get the linker to tell me that I have two definitions for fnTemp()?

I know that I could put the declaration for fnTemp() in a .h file and include the .h file in both .c files which will then trigger a compiler error. But I have an instance where that can cause other issues.

Thank you for any help.

Parents Reply Children
  • Actually no. I tried this:

    extern void helloExit(int a);
    /* atExit function */
    void displayExit(void)
    {
      helloExit(1);
      kprintf(1, " ended\n");
    }
    

    and in the other file:

    void helloExit(void)
    {
      kprintf(1, " ended\n");
    }
    

    I checked with armcc 5.06 and get no linker error. Tried Clang 6.6.3, no error/no warning.