什么构建系统与Go一起使用?

Alv*_*Row 12 build-system go

我知道Go源代码附带了一个Makefile(它已经存在$GOROOT/doc),我现在正在使用它,但是还有其他流行的构建系统增加了对Go的支持吗?有没有人为scons,waf等编写构建脚本......

你用什么来构建你的Go程序?

Ros*_*ght 9

我一直在使用scons; 这是一个示例SConstruct文件:

archs = {'amd64': '6', '386': '8', 'arm': '5',}

def gc(source, target, env, for_signature):
    targets = target[0]
    sources = ' '.join(str(s) for s in source)
    flags = ''
    for include in env.get('GOINCLUDE', []):
        flags += '-I %s ' % (include)
    return '%s -o %s %s %s' % (env['GOCOMPILER'], targets, flags, sources)

def ld(source, target, env, for_signature):
    targets = target[0]
    sources = ' '.join(str(s) for s in source)
    return '%s -o %s %s' % (env['GOLINKER'], targets, sources)

def _go_object_suffix(env, sources):
    return "." + archs[env['ENV']['GOARCH']]

def _go_program_prefix(env, sources):
    return env['PROGPREFIX']

def _go_program_suffix(env, sources):
    return env['PROGSUFFIX']

go_compiler = Builder(generator=gc,
                      suffix=_go_object_suffix,
                      src_suffix='.go',)
go_linker = Builder(generator=ld,
                    prefix=_go_program_prefix,
                    suffix=_go_program_suffix,)

# Create environment
import os
env = Environment(BUILDERS={'Go': go_compiler, 'GoProgram': go_linker},
                  ENV=os.environ,)
arch_prefix = archs[os.environ['GOARCH']]
env.SetDefault(GOCOMPILER=os.path.join(os.environ['GOBIN'], arch_prefix + 'g'))
env.SetDefault(GOLINKER=os.path.join(os.environ['GOBIN'], arch_prefix + 'l'))
# Build programs
# Modify this to suit your program
main_package = env.Go(target='main', source='main.go')
program = env.GoProgram(target='program', source=[main_package])
Run Code Online (Sandbox Code Playgroud)


Gyö*_*sek -1

我还没有编写一个足够大的项目来需要构建系统,所以一个简单的build.sh就足够了。

您可以使用$GOROOT,$GOARCH$GOOS来确定您需要什么:

jurily@jurily ~ $ env | grep GO
GOARCH=amd64
GOROOT=/home/jurily/go
GOOS=linux
Run Code Online (Sandbox Code Playgroud)

如果这对 Go 来说足够了,那么对我来说也足够了。

  • @Jed:我是匈牙利人。你会发现我所说的一切都很有趣。 (11认同)
  • 还有人觉得“$GOOS”发音很有趣吗? (4认同)