I think it's one of the disadvantages of making a unique API (but don't get me wrong, I don't say this is bad practice - I also plan on making my own API) - One way to address this problem is by providing a bridge between your API and POSIX. That way, you can then provide the headers required & link the program against your bridge (which would be a separate library on it's own). The other solution would be to literally develop your tools (which can be fun to do BUT time consuming ALTHOUGH this would be a good thing anyways since that way you would test your API as you develop it; see this article on the OSDev Wiki that talks about on how to create a compiler from scratch:
https://wiki.osdev.org/Making_a_Compiler)
Note: I may be wrong in what I'm saying here, correct me if I'm wrong - I'll be happy to hear a correct answer to this question