If you have the compiled ABI, you can skip directly to step 4.
To create new go interfaces to contracts:
add the solidity file: <filename>.sol
decide on a package name. this will be the name of the package you'll import into go (<pkg-name>)
compile the abi & bin for the contract: solc -o <pkg-name> --abi --bin <filename>.sol
run from this directory
note that -o is the output directory. this will generate <pkg-name>/<filename>.abi
generate the golang interface:
abigen --abi=<pkg-name>/<filename>.abi --bin=<pkg-name>/<filename>.bin --pkg=<pkg-name> --out=<pkg-name>/main.go
import and use the contract in Go.
By including the bin, the generated interface will have a Deploy* method. If you only need to interact with an existing contract, you can exclude the --bin and only an interaction method interface will be generated.