Go Build Systems: ampliando su flujo de trabajo de desarrollo
Go, el lenguaje de programación aclamado por su simplicidad y simultaneidad, ha ganado una amplia aceptación. A medida que evolucionan los proyectos de desarrollo, la necesidad de contar con sistemas de construcción sólidos para automatizar los procesos de construcción, pruebas e implementación se vuelve crucial. Pero, ¿qué sistemas de compilación admiten Go y mejoran sus capacidades?
Makefile: el sistema de compilación inicial de Go
Tradicionalmente, Go se ha basado en Makefile incluido con su distribución fuente. Este Makefile, ubicado en $GOROOT/doc, facilita varias tareas de compilación. Sin embargo, la comunidad Go ha explorado sistemas de compilación alternativos para ampliar la funcionalidad de Go.
Ampliando las opciones de compilación de Go
Varios sistemas de compilación populares se han adaptado para admitir Go, ofreciendo opciones adicionales características y flexibilidad. SCons, una herramienta de compilación basada en Python, es una alternativa ampliamente utilizada. WAF, otro sistema de compilación popular, también se implementó para Go.
Ejemplo: compilación con SCons
Aquí hay un archivo SConstruct de muestra que ilustra cómo usar SCons con Go:
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])
Conclusión
El Makefile de la distribución fuente Go proporciona una base sólida para crear programas Go . Sin embargo, los sistemas de construcción alternativos como SCons y WAF ofrecen características y flexibilidad adicionales. Al adoptar estos sistemas de compilación, los desarrolladores de Go pueden optimizar sus procesos de compilación, mejorar las capacidades de prueba y simplificar la implementación de proyectos.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3