I'm trying to use make to build a static library. This operation is successful if I run it from a virtual machine (using CentOS 7 on VirtualBox) or on one of our company's Linux servers, but I get the following errors when I run it from my Windows Subsystem Linux Bash shell running Ubuntu:
/usr/include/stdio.h:276:43: error: missing binary operator before token "(" #if defined __USE_XOPEN2K8 || __GLIBC_USE (LIB_EXT2) ^/usr/include/stdio.h:349:17: error: missing binary operator before token "(" #if __GLIBC_USE (LIB_EXT2) ^/usr/include/stdio.h:567:17: error: missing binary operator before token "(" #if __GLIBC_USE (DEPRECATED_GETS) ^/usr/include/stdio.h:592:43: error: missing binary operator before token "(" #if defined __USE_XOPEN2K8 || __GLIBC_USE (LIB_EXT2) ^In file included from ../../../logic/src/madp_helo_engine_status_process.c:44:0:/usr/include/string.h:36:42: error: missing binary operator before token "(" #if defined __cplusplus && __GNUC_PREREQ (4, 4) ^/usr/include/string.h:164:21: error: missing binary operator before token "(" || __GLIBC_USE (LIB_EXT2)) ^/usr/include/string.h:173:43: error: missing binary operator before token "(" #if defined __USE_XOPEN2K8 || __GLIBC_USE (LIB_EXT2) ^/usr/include/string.h:491:19: error: missing binary operator before token "(" #if __GNUC_PREREQ (3,4) ^In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h:9:0, from ../../../includes/common_types.h:41, from ../../../logic/src/source.c:46:/usr/include/stdint.h:286:17: error: missing binary operator before token "(" #if __GLIBC_USE (IEC_60559_BFP_EXT) ^In file included from ../../../includes/common_types.h:44:0, from ../../../logic/src/source.c:46:/usr/include/stdlib.h:133:35: error: missing binary operator before token "(" #if __HAVE_FLOAT16 && __GLIBC_USE (IEC_60559_TYPES_EXT) ^/usr/include/stdlib.h:139:35: error: missing binary operator before token "(" #if __HAVE_FLOAT32 && __GLIBC_USE (IEC_60559_TYPES_EXT) ^/usr/include/stdlib.h:145:35: error: missing binary operator before token "(" #if __HAVE_FLOAT64 && __GLIBC_USE (IEC_60559_TYPES_EXT) ^/usr/include/stdlib.h:151:36: error: missing binary operator before token "(" #if __HAVE_FLOAT128 && __GLIBC_USE (IEC_60559_TYPES_EXT) ^/usr/include/stdlib.h:157:36: error: missing binary operator before token "(" #if __HAVE_FLOAT32X && __GLIBC_USE (IEC_60559_TYPES_EXT) ^/usr/include/stdlib.h:163:36: error: missing binary operator before token "(" #if __HAVE_FLOAT64X && __GLIBC_USE (IEC_60559_TYPES_EXT) ^/usr/include/stdlib.h:169:37: error: missing binary operator before token "(" #if __HAVE_FLOAT128X && __GLIBC_USE (IEC_60559_TYPES_EXT) ^/usr/include/stdlib.h:211:17: error: missing binary operator before token "(" #if __GLIBC_USE (IEC_60559_BFP_EXT) ^/usr/include/stdlib.h:225:35: error: missing binary operator before token "(" #if __HAVE_FLOAT16 && __GLIBC_USE (IEC_60559_TYPES_EXT) ^/usr/include/stdlib.h:231:35: error: missing binary operator before token "(" #if __HAVE_FLOAT32 && __GLIBC_USE (IEC_60559_TYPES_EXT) ^/usr/include/stdlib.h:237:35: error: missing binary operator before token "(" #if __HAVE_FLOAT64 && __GLIBC_USE (IEC_60559_TYPES_EXT) ^/usr/include/stdlib.h:243:36: error: missing binary operator before token "(" #if __HAVE_FLOAT128 && __GLIBC_USE (IEC_60559_TYPES_EXT) ^/usr/include/stdlib.h:249:36: error: missing binary operator before token "(" #if __HAVE_FLOAT32X && __GLIBC_USE (IEC_60559_TYPES_EXT) ^/usr/include/stdlib.h:255:36: error: missing binary operator before token "(" #if __HAVE_FLOAT64X && __GLIBC_USE (IEC_60559_TYPES_EXT) ^/usr/include/stdlib.h:261:37: error: missing binary operator before token "(" #if __HAVE_FLOAT128X && __GLIBC_USE (IEC_60559_TYPES_EXT)
Again this same build works fine outside of WSL. I'm assuming I'm missing a dependency, I just don't know what, and Google searches haven't turned up anything useful.
Versions:
gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04)
GNU Make 4.1
Distributor ID: Ubuntu
Description: Ubuntu 18.04.4 LTS
Release: 18.04
Codename: bionic