If you need to change your microservice's API in a non-backwards compatible way, you have the exact same problem plus significant operational complexity.
Which is basically what you do for a traditional library as well. Tweak the header so anything being recompiled against it gets a different function signature. Then old apps continue to work, and newly built apps get the fix.