c++ code how to restore wallet keys from mnemonic seed phrase

so iam trying to code some wallet functions in c++ i need to do the following.

  1. starting with a seed phrase
  2. restore the private keys and bitcoin addresses (all addresses generated from the seed phrase) I understand you can deterministically generate private keys and their corresponding public keys (bit coin addresses)
  3. check the balances on those addresses

which of the c++ or (java) libraries can I use and how to i get this going?
I have tried using java bitcoincore libraries but when i used my known seed the private keys and addresses generated where way off.