Задать вопрос
hitakiri
@hitakiri

Почему Go билдит такой большой файл?

Вопрос в том почему GO билдит такие большие .exe файлы?

// helloworld.go
package main

import (
	"fmt"
)

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


Занимает аж: 1.62 Мб.
Это не претензия, просто интересно что такого там может лежать, для простого вывода "Hello World!".
  • Вопрос задан
  • 1512 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@malbaron
Потому что так задумано разработчиками.
Любая программа с маленьким исполняемым файлом на самом деле требует наличия кучи библиотек, установленных в системе. А то даже и определенных версий этих библиотек.

Go сконструирован как переносимый по максимуму.
Потому скомпилированный файл тащит в себе все библиотеки.
Что позволяет не зависит от версий библиотек, установленных в системе

Если же вам принципиально нужно уменьшить размер файла программы написанной на Go, то это тоже возможно
Есть и такие ключики для компиляции.
Ответ написан
Комментировать
@xuBpaloLim
Программа на С, если вы её с компилируйте не с динамическими, а со статическими библиотеками - будет тоже занимать прилично.

Просто Go по умолчанию компилиться со статическими. Во избежания проблемы "ада библиотек" при развертывании.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы