mbpoll icon indicating copy to clipboard operation
mbpoll copied to clipboard

implicit declaration of function 'MAX' is invalid in C99 [-Werror,-Wimplicit-function-declaration]

Open JetForMe opened this issue 4 years ago • 0 comments

Compiling on macOS (clang), I get these errors:

$ make
[ 25%] Building C object CMakeFiles/mbpoll.dir/src/mbpoll.c.o
/Users/rmann/Projects/Clients/NASA/FurnaceController/misc/mbpoll/src/mbpoll.c:684:22: error: implicit declaration of function 'MAX' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    int iNbToWrite = MAX (0, argc - optind - 1);
                     ^
/Users/rmann/Projects/Clients/NASA/FurnaceController/misc/mbpoll/src/mbpoll.c:1629:17: error: implicit declaration of function 'MAX' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
        iLast = MAX (iFirst, i);
                ^
/Users/rmann/Projects/Clients/NASA/FurnaceController/misc/mbpoll/src/mbpoll.c:1630:18: error: implicit declaration of function 'MIN' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
        iFirst = MIN (iFirst, i);
                 ^
/Users/rmann/Projects/Clients/NASA/FurnaceController/misc/mbpoll/src/mbpoll.c:1677:23: error: implicit declaration of function 'MAX' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
          int iLast = MAX (iFirst, i);
                      ^
/Users/rmann/Projects/Clients/NASA/FurnaceController/misc/mbpoll/src/mbpoll.c:1678:20: error: implicit declaration of function 'MIN' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
          iFirst = MIN (iFirst, i);
                   ^
5 errors generated.
make[2]: *** [CMakeFiles/mbpoll.dir/src/mbpoll.c.o] Error 1
make[1]: *** [CMakeFiles/mbpoll.dir/all] Error 2
make: *** [all] Error 2

I fixed this by hacking in quick definitions:

inline int MIN(int a, int b) { return a > b ? b : a; }
inline int MAX(int a, int b) { return a > b ? a : b; }

But it felt a bit hacky and likely won’t compile on other platforms.

JetForMe avatar Sep 04 '21 07:09 JetForMe