Я учусь программировать на языке Go Google, у меня есть скрипт:

package main

import "fmt"

func main() {
    fmt.Println("Hello, World!")
}

Поэтому я скомпилировал это с:

go build /home/user/HelloWorld.go

Я заметил, что могу запустить скомпилированный результат без выполнения:

chmod +x /home/user/HelloWorld

Почему это?

1 ответ1

1

Помните, что команда build вызывает несколько частей цепочки инструментов go с неявной целью создания исполняемого файла. Вы можете попросить go выполнить только компиляцию, скажем, или ссылку, взяв каждый инструмент по очереди, и это будет только последний шаг в цепочке инструментов сборки, который фактически устанавливает исполняемый бит.

Это не совсем то, что нужно. Это то, что делают цепочки инструментов компилятора. Следует помнить, что сценарий оболочки не является скомпилированным исполняемым файлом: поэтому вам нужно установить исполняемый бит так, чтобы, когда ядро прочитало первую строку, оно знало, чтобы вызвать оболочку и передать ей тело сценария.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .