Jason, You can use the same build tag mechanism than for regular Go files:
// #cgo amd64 386 CFLAGS: -DX86=1 See: https://golang.org/pkg/cmd/cgo/ Hth, -s sent from my droid On Feb 15, 2018 2:12 PM, "Jason E. Aten" <j.e.a...@gmail.com> wrote: > I ported my CGO-using project to windows, and found that the -ldl flag > that is needed on darwin and linux (for dynamic code loading) cannot also > be used on windows. Its presence causes my project build to fail. > > In order to change the LDFLAG list, I tried putting an #ifdef __APPLE__ or > #ifdef _WIN32 / #ifdef __linux__ around the #cgo LDFLAGS in order to change > the flags to be platform specific, but that failed gloriously (the #ifdefs > just seemed to be ignored). > > So I ended up creating three copies of the golua.go, one for each > platform, using the filename based mechanism. > > Hence now I have: golua_darwin.go, golua_windows.go, and golua_linux.go. > > While this builds, its a bit of a code smell/maintenance burden, since > except > for the one line difference between `#cgo LDFLAGS: -lm -ldl` versus `#cgo > LDFLAGS: -lm`, there is no other difference between > the three golua_*.go files for each OS. > > My question: is there a easier way to adapt the LDFLAGS to the operating > system? If I port to solaris/illumos/other OS, I'd rather not have > to make a 4th/5th copy of the golua.go file, just to change a flag. > > Specifics to help visualize the situation: > > https://github.com/gijit/gi/blob/windows/vendor/github. > com/glycerine/golua/lua/golua_darwin.go#L5 has: > > /* > #cgo CFLAGS: -I ${SRCDIR}/../../../LuaJIT/LuaJIT/src > #cgo LDFLAGS: -lm -ldl > #include <lua.h> > #include <lualib.h> > #include <stdlib.h> > */ > import "C" > > > https://github.com/gijit/gi/blob/windows/vendor/github. > com/glycerine/golua/lua/golua_windows.go#L5 has: > > /* > #cgo CFLAGS: -I ${SRCDIR}/../../../LuaJIT/LuaJIT/src > #cgo LDFLAGS: -lm > #include <lua.h> > #include <lualib.h> > #include <stdlib.h> > */ > import "C" > > -- > You received this message because you are subscribed to the Google Groups > "golang-nuts" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to golang-nuts+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.