В файле make.bat, найденном в go / src (после распаковки tar), есть команда компиляции gcc даже до того, как когда-либо использовалась проверка на CGO_ENABLED.Это портит сборку средства начальной загрузки.
Из соображений безопасности я не могу установить GCC на Windows через cygwin или ming.Тем не менее, компиляции предназначены для различных файлов .c, что заставляет меня не знать, что делать дальше.
Я возился с исходным кодом и переменными среды, особенно CGO_ENABLED, которые должны были быть всем, что мне нужно,Тем не менее, make.bat имеет тот раздражающий маленький компилятор c, который, кажется, сбивает меня с толку.
Это файл make.bat и компиляция, которая отбрасывает меня:
:: CGO_ENABLED: Controls cgo usage during the build. Set it to 1
:: to include all cgo related files, .c and .go file with "cgo"
:: build directive, in the build. Set it to 0 to ignore them.
@echo off
:: Keep environment variables within this script
:: unless invoked with --no-local.
if x%1==x--no-local goto nolocal
if x%2==x--no-local goto nolocal
setlocal
:nolocal
set GOBUILDFAIL=0
if exist make.bat goto ok
echo Must run make.bat from Go src directory.
goto fail
:ok
:: Clean old generated file that will cause problems in the build.
del /F ".\pkg\runtime\runtime_defs.go" 2>NUL
:: Grab default GOROOT_FINAL and set GOROOT for build.
:: The expression %VAR:\=\\% means to take %VAR%
:: and apply the substitution \ = \\, escaping the
:: backslashes. Then we wrap that in quotes to create
:: a C string.
cd ..
set GOROOT=%CD%
cd src
if "x%GOROOT_FINAL%"=="x" set GOROOT_FINAL=%GOROOT%
set DEFGOROOT=-DGOROOT_FINAL="\"%GOROOT_FINAL:\=\\%\""
echo # Building C bootstrap tool.
echo cmd/dist/*.c
if not exist ..\bin\tool mkdir ..\bin\tool
:: Windows has no glob expansion, so spell out cmd/dist/*.c.
gcc -O2 -Wall -Werror -o cmd/dist/dist.exe -Icmd/dist %DEFGOROOT% cmd/dist/buf.c cmd/dist/build.c cmd/dist/buildgc.c cmd/dist/buildgo.c cmd/dist/buildruntime.c cmd/dist/main.c cmd/dist/windows.c cmd/dist/arm.c
if errorlevel 1 goto fail
.\cmd\dist\dist env -wp >env.bat
if errorlevel 1 goto fail
call env.bat
del env.bat
echo.
Окончательный результат - просто стандартная ошибка gcc:
Инструмент начальной загрузки Building C.
cmd / dist / *. C
"gcc" не распознается как ...