error: conflicting types for built-in function ‘tolower’ [-Werror]

后端 未结 2 605
渐次进展
渐次进展 2021-01-20 10:26

I have a small RTOS which does not use glibc and I have written own functions (e.g. tolower) in string.c

When compiling I am getting the er

相关标签:
2条回答
  • 2021-01-20 10:45

    If you're not using the C standard library for some reason, I won't tell you that's probably a bad idea. Even though the builtin function will probably implicitely link to a libc implementation under certain circumstances beyond your control.

    Anyways... Either don't use -Werror, or append -Wno-error or fix your function to look like the real thing:

    int tolower(int c);
    
    0 讨论(0)
  • 2021-01-20 11:05

    tolower is a function from the C library and its identifier is a reserved identifier for use as an identifier with external linkage, even if you don't include the header where it is declared.

    You could get rid of the warning by using -fno-builtin but the best is simply to chose another name for tolower.

    (C99, 7.1.3p1) "All identifiers with external linkage in any of the following subclauses (including the future library directions) are always reserved for use as identifiers with external linkage."

    0 讨论(0)
提交回复
热议问题