Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
If you're using the boot.s from the Bare Bones template on the wiki, it does not set up the Multiboot header with necessary information for making a flat binary readable by Grub - its Makefile builds an ELF binary, but your use of --oformat binary produces a raw binary. If this is what you want to do, you'll need to adjust the header you build to set the appropriate flag to tell Grub the address section of the Multiboot header is valid, and to set the appropriate values in it. You can read more about those entries in the header here: https://www.gnu.org/software/grub/manua ... ess-fields
Additionally, you should not set CC to a C++ compiler in a Makefile, and not all C sources will compile as C++, so be careful with that.