Go wrapper for C bindings of blazesym.
First of all, you need to have blazesym-c available on your system. If it is installed in the expected places, everything should build out of the box.
If you don't have installed, you can build it yourself from capi dir in the repo:
cargo build --release
You can then pass flags to tell Go where to find things:
CGO_CFLAGS="-I/path/to/blazesym/capi/include" CGO_LDFLAGS="-L/path/to/blazesym/target/release"
At runtime you need to set LD_LIBRARY_PATH=/path/to/blazesym/target/release.
You might want to link against blazesym statically by adding the following to CGO_LDFLAGS:
-Wl,-Bstatic -lblazesym_c -Wl,-Bdynamic
This way blazesym_c.so doesn't need to be installed on the system where the binary will run.
Fully static builds are possible if you pass the following to go build or go install:
-ldflags='-extldflags "-static"'
See example_source_elf_test.go for a basic example.