Поиск:

Ответ в темуСоздание новой темы Создание опроса
> golang мусор в exe 
:(
    Опции темы
YahоО
Дата 9.9.2023, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 198
Регистрация: 11.6.2015

Репутация: нет
Всего: 1



Написал код в файле go, например Hello1.go, работает, далее в LiteIDE создал из него файл  Hello1.exe, работает, потом посмотрел что же написано в Hello1.exe внутри, а там масса текста на мой взгляд совершенно необязательного для функционирования данного исполняемого файла. 

Например там текстом записаны пути:
C:/Program Files/Go/src/internal/cpu/cpu.go 
C:/Program Files/Go/src/runtime/internal/sys/intrinsics_common.go 
C:/Program Files/Go/src/internal/bytealg/bytealg.go 
C:/Program Files/Go/src/internal/bytealg/count_native.go 
C:/Program Files/Go/src/runtime/iface.go 
...
C:/Program Files/Go/src/runtime/lfstack.go 
C:/Program Files/Go/src/runtime/alg.go
C:/Program Files/Go/src/runtime/stubs.go 
C:/Program Files/Go/src/runtime/typekind.go 
C:/Program Files/Go/src/runtime/type.go 
C:/Program Files/Go/src/runtime/mwbbuf.go 
C:/Program Files/Go/src/runtime/atomic_pointer.go 
C:/Program Files/Go/src/runtime/cgocall.go 
D:/Hello1.go

килобайт 10 подобного перечисления, и в том числе путь к оригинальному файлу Hello1.go, и если файл Hello1.go удалить то Hello1.exe все равно может работать, т.е. данный путь совершенно не нужен исполняемому файлу.
А если Hello1.exe записать на другой компьютер где нет go? Тогда зачем мне иметь ненужные текстовые строки в конечном файле? Как компилировать без мусора?
Может надо как то по другому настроить имеющийся LiteIDE ?




 

PM MAIL   Вверх
Oldshelf
Дата 10.9.2023, 06:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 22.4.2018

Репутация: нет
Всего: 4



Не нашёл по LiteIDE, но есть информация, как отменить включение отладочных данных в Go: https://stackoverflow.com/questions/3000587...ation-on-golang
PM MAIL WWW   Вверх
YahоО
Дата 10.9.2023, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 198
Регистрация: 11.6.2015

Репутация: нет
Всего: 1



Вполне вероятно рецепт по ссылке

https://stackoverflow.com/questions/3000587...ation-on-golang  "рекомендую использовать его -ldflags="-s -w", который удаляет таблицу символов и отладочную информацию."

помог бы решить проблему, если бы я знал куда врисовать  -ldflags="-s -w", пытаюсь так:
go build hello.go -ldflags="-s -w"
и эдак:
go build hello.go -ldflags=-s -w
и:
go build hello.go -ldflags=-s

на все это пишет мне в ответ:
named files must be .go files: -ldflags=-s -w
Команда завершилась с кодом 1.
или
named files must be .go files: -ldflags=-s
Команда завершилась с кодом 1.

По поводу мусора от такой брендовой конторы как то никто и не озаботился до сих пор, все учатся языку и ооп и никто не заглядывает что же там в результате имеет, и множится и носится мусор по миру, удивительно как минимум.
По крайней мере мне так и не удается за два дня нагуглить хоть какое то практическое упоминание о попытках что то изменить.

Если просто вытереть хоть один символ в исполняемом файле в мусорной области, то файл уже не работает, т.е. даже не пользуясь хранимыми ссылками тем не менее проверяет свою целостность вероятно по хеш-сумме имеющейся в файле.

Рассматривая файл можно еще увидеть:
"...unicode.Cyrillic unicode.Deseret unicode.Devanagari unicode.Dives_Akuru unicode.Dogra unicode.Duployan unicode.Egyptian_Hieroglyphs unicode.Elbasan unicode.Elymaic unicode.Ethiopic unicode.Georgian unicode.Glagolitic unicode.Gothic unicode.Grantha unicode.Greek unicode.Gujarati unicode.Gunjala_Gondi..."
Спрашивается а вот это длинный перечень для чего присутствует в файле в котором управляющие символы вовсе не эти? 
Можно предположить что реально используемых и минимально необходимых символов в исполняемом файле всего 3-5% от общего их числа, остальное это вредный неиспользуемый в БЫТУ мусор! 
PM MAIL   Вверх
YahоО
Дата 10.9.2023, 15:11 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 198
Регистрация: 11.6.2015

Репутация: нет
Всего: 1



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

go build -ldflags="-s -w" hello.go

В итоге мусора конечно меньше, но файл все равно очищен не полностью.

Oldshelf спасибо за помощь!



Это сообщение отредактировал(а) YahоО - 10.9.2023, 15:27
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Добро пожаловать в раздел "Другие языки" форума Vingrad!

Void
Void

Раздел посвящён различным языкам программирования, для которых (в силу невысокой популярности) нет отдельного раздела (GPSS, Lua, MATLAB, Ada, Forth, Smalltalk, Tcl, REXX, AWK и др.)

  • Обязательно следуйте правилам Форума.
  • Пожалуйста, прочитайте и следуйте рекомендациям по работе в разделе и навигации по Форуму.
  • Для вставки текстов исходных кодов используйте подсветку синтаксиса из выплывающего списка Код в форме ответа. Если Ваш язык в списке не представлен, то используйте тег: [code=ваш_язык]код[/code], например, [code=ada]код[/code]. Если в будущем подсветка синтаксиса для указанного языка будет реализована, исходный код преобразится.
  • Помните, один вопрос - одна тема.

Приятного времяпрепровождения! С уважением, Void, kemiisto .

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Другие языки | Следующая тема »


 




[ Время генерации скрипта: 0.1133 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.