How do I get my gun to shoot where my cross-hair actually is?

It really depends on what kind of first person view you want.

Standard approach is to just spawn the bullets from the center of the screen.
e.g Quake, Half-Life

Alternate approach to that is to spawn the bullets from the barrel them make shift to the center of the screen shortly after being spawned and then continue on straight.
e.g. UT4

If you’re using separate first and third person animations, you can create first person animations and/or adjust the mesh to the camera as required.
e.g. Call of Duty, Escape from Tarkov, BattleField.

If you’re using true first person setup with a single set of animations, you will need to adjust the animation to the camera based on the sights.
e.g. Ground Branch (shameless plug), Arma, Star Citizen

Up to you to decide which.