(I'm sorry if this is the wrong place to report this)
STM32CubeMX 4.23 (tested with MacOS High Sierra, Arch Linux x86_64 with x32 binary emulation) is generating spurious entries during Makefile generation (such as Src/main.c and various other files listed twice) which causes link errors such as:
".../Src/usb_device.c:63: multiple definition of `MX_USB_DEVICE_Init'
build/usb_device.o:.../Src/usb_device.c:63: first defined here"
The temporary fix is to remove any multiple entries from the Makefile, then all compiles and links (apparently) correctly.
Apologies If there's something wrong with my setup that is causing this, granted I've seen it reported elsewhere when searching for solutions to these errors