Страница 3 из 9
Re: Go
Добавлено: 26 май 2016, 11:12
Olej
Olej писал(а):
Базовым материалом, на этот раз, будет вот та книжка Кэрнигана, показанная выше.
В книге много интересных и полезных примеров кода (в отличие от обычных для большинства книг примеров бла-бла-бла, высосанных из пальца).
Я буду здесь отмечать (себе на памятку) только те немногие, которые особо полезны на практике.
Таким безусловно является обработка опций командной строки запуска программы, на манер того, что делает POSIX getopt().
Код: Выделить всё
// Echo4 prints its command-line arguments.
package main
import (
"flag"
"fmt"
"strings"
)
var n = flag.Bool("n", false, "omit trailing newline")
var sep = flag.String("s", " ", "separator")
func main() {
flag.Parse()
fmt.Print(strings.Join(flag.Args(), *sep))
if !*n {
fmt.Println()
}
}
Код: Выделить всё
[olej@dell bin]$ go build gopl.io/ch2/echo4
Код: Выделить всё
[olej@dell bin]$ ./echo4 a bc def
a bc def
[olej@dell bin]$ ./echo4 -n a bc def
a bc def[olej@dell bin]$
[olej@dell bin]$ ./echo4 a bc def -n
a bc def -n
Код: Выделить всё
[olej@dell bin]$ ./echo4 -s / a/bc/def
a/bc/def
[olej@dell bin]$ ./echo4 -s/ a/bc/def
flag provided but not defined: -s/
Usage of ./echo4:
-n omit trailing newline
-s string
separator (default " ")
[olej@dell bin]$ ./echo4 -s"/" a/bc/def
flag provided but not defined: -s/
Usage of ./echo4:
-n omit trailing newline
-s string
separator (default " ")
Это не совсем то по поведению (к сожалению) что getopt(), но очень похоже...
P.S. "не совсем то" имеется в виду, что нельзя в командной строке, например, "пересыпать" опции (ключи) с параметрами ... но в целом это годится для написания консольных приложений, напоминающих поведением утилиты Linux.
Re: Go
Добавлено: 31 май 2016, 08:06
Olej
Olej писал(а):Начинаю (в силу определённых обстоятельств) новый виток углубления в Go... и проверки что там сейчас и поменялось за 2 года.
Относительно инструментария (
как с этим можно работать):
- в качестве редактора
вполне пригоден и достаточен стандартный Geany:
- он понимает цветовую разметку кода Go
- его опция Build (F8) совершенно правильно собирает приложение с помощью Golang
- в нижнем фрейме вам ошибки...
- там же можно запускать и тестировать собранное приложение.
Всё в одном флаконе...
Re: Go
Добавлено: 31 май 2016, 08:18
Olej
Olej писал(а):
Относительно инструментария (как с этим можно работать):
По поводу справочной системы под рукой...
Читаем, например, в книге (стр. 97):
Для работы со строками в особенности важны четыре стандартных пакета: bytes, strings, strconv и unicode.
Справку
по всем стандартным пакетам Go получаем тут-же из исходников здесь -
Directory src/:
Код: Выделить всё
File Bytes Modified
..
Make.dist 553 2016-05-19 18:04:32 +0000 UTC
all.bash 407 2016-05-19 18:04:32 +0000 UTC
all.bat 726 2016-05-19 18:04:32 +0000 UTC
all.rc 385 2016-05-19 18:04:32 +0000 UTC
androidtest.bash 2902 2016-05-19 18:04:34 +0000 UTC
archive/ 0 0001-01-01 00:00:00 +0000 UTC
bootstrap.bash 2050 2016-05-19 18:04:34 +0000 UTC
bufio/ 0 0001-01-01 00:00:00 +0000 UTC
buildall.bash 1821 2016-05-19 18:04:34 +0000 UTC
builtin/ 0 0001-01-01 00:00:00 +0000 UTC
bytes/ 0 0001-01-01 00:00:00 +0000 UTC
clean.bash 521 2016-05-19 18:04:32 +0000 UTC
clean.bat 565 2016-05-19 18:04:32 +0000 UTC
clean.rc 380 2016-05-19 18:04:32 +0000 UTC
cmd/ 0 0001-01-01 00:00:00 +0000 UTC
compress/ 0 0001-01-01 00:00:00 +0000 UTC
container/ 0 0001-01-01 00:00:00 +0000 UTC
crypto/ 0 0001-01-01 00:00:00 +0000 UTC
database/ 0 0001-01-01 00:00:00 +0000 UTC
debug/ 0 0001-01-01 00:00:00 +0000 UTC
encoding/ 0 0001-01-01 00:00:00 +0000 UTC
errors/ 0 0001-01-01 00:00:00 +0000 UTC
expvar/ 0 0001-01-01 00:00:00 +0000 UTC
flag/ 0 0001-01-01 00:00:00 +0000 UTC
fmt/ 0 0001-01-01 00:00:00 +0000 UTC
go/ 0 0001-01-01 00:00:00 +0000 UTC
hash/ 0 0001-01-01 00:00:00 +0000 UTC
html/ 0 0001-01-01 00:00:00 +0000 UTC
image/ 0 0001-01-01 00:00:00 +0000 UTC
index/ 0 0001-01-01 00:00:00 +0000 UTC
internal/ 0 0001-01-01 00:00:00 +0000 UTC
io/ 0 0001-01-01 00:00:00 +0000 UTC
iostest.bash 2020 2016-05-19 18:04:32 +0000 UTC
log/ 0 0001-01-01 00:00:00 +0000 UTC
make.bash 5667 2016-05-19 18:04:34 +0000 UTC
make.bat 3776 2016-05-19 18:04:34 +0000 UTC
make.rc 2933 2016-05-19 18:04:32 +0000 UTC
math/ 0 0001-01-01 00:00:00 +0000 UTC
mime/ 0 0001-01-01 00:00:00 +0000 UTC
nacltest.bash 1924 2016-05-19 18:04:34 +0000 UTC
net/ 0 0001-01-01 00:00:00 +0000 UTC
os/ 0 0001-01-01 00:00:00 +0000 UTC
path/ 0 0001-01-01 00:00:00 +0000 UTC
race.bash 853 2016-05-19 18:04:32 +0000 UTC
race.bat 1037 2016-05-19 18:04:32 +0000 UTC
reflect/ 0 0001-01-01 00:00:00 +0000 UTC
regexp/ 0 0001-01-01 00:00:00 +0000 UTC
run.bash 1283 2016-05-19 18:04:32 +0000 UTC
run.bat 1078 2016-05-19 18:04:32 +0000 UTC
run.rc 380 2016-05-19 18:04:32 +0000 UTC
runtime/ 0 0001-01-01 00:00:00 +0000 UTC
sort/ 0 0001-01-01 00:00:00 +0000 UTC
strconv/ 0 0001-01-01 00:00:00 +0000 UTC
strings/ 0 0001-01-01 00:00:00 +0000 UTC
sync/ 0 0001-01-01 00:00:00 +0000 UTC
syscall/ 0 0001-01-01 00:00:00 +0000 UTC
testing/ 0 0001-01-01 00:00:00 +0000 UTC
text/ 0 0001-01-01 00:00:00 +0000 UTC
time/ 0 0001-01-01 00:00:00 +0000 UTC
unicode/ 0 0001-01-01 00:00:00 +0000 UTC
unsafe/ 0 0001-01-01 00:00:00 +0000 UTC
vendor/ 0 0001-01-01 00:00:00 +0000 UTC
Build version go1.6.2.
Ничего больше и не надо (описаний, разъяснений, ...) - всё просто и понятно.
Re: Go
Добавлено: 31 май 2016, 08:48
Olej
Olej писал(а):
В книге много интересных и полезных примеров кода
Красивый пример на использование генератора констант iota (стр.104)
Re: Go
Добавлено: 31 май 2016, 10:55
Olej
Olej писал(а):
Сразу зафиксируем то, что ни в одной книжке, как правило, вам не расскажут:
1. Показанные выше компиляции собирают приложения
со статической сборкой с библиотеками.
Код: Выделить всё
[olej@dell bin]$ ls -l helloworld
-rwxr-xr-x. 1 olej olej 2367440 май 23 20:35 helloworld
[olej@dell bin]$ ldd helloworld
не является динамическим исполняемым файлом
[olej@dell bin]$ file helloworld
helloworld: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, not stripped
Это хорошо, возможно, для embedded систем/приложений, или Windows.
Но вовсе не хорошо для Linux (см. размер исполнимого файла)
2. При некоторых условиях (опциями команд) сборка может быть
динамическая, с использованием shared библиотек
операционной системы:
Код: Выделить всё
[olej@dell bin]$ ldd fetch
linux-vdso.so.1 (0x00007ffd1c5e5000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f5a94e62000)
libc.so.6 => /lib64/libc.so.6 (0x00007f5a94aa1000)
/lib64/ld-linux-x86-64.so.2 (0x00005587fc664000)
С этими опциями я разберусь попозже.
3. Всё это относится к основному проекту Golang.
Но в проекте компилятора GCC (который поддерживает и так несколько языков программирования) развивается ветка Go:
Код: Выделить всё
[olej@localhost ~]$ dnf list gcc* | grep go
gcc-go.x86_64 5.3.1-6.fc23 updates
[olej@localhost ~]$ dnf info gcc-go
Последняя проверка окончания срока действия метаданных: 20 days, 1:23:24 назад, Sun May 1 15:47:26 2016.
Доступные пакеты
Имя : gcc-go
Архитектура : x86_64
Эпоха : 0
Версия : 5.3.1
Релиз : 6.fc23
Размер : 8.9 M
Репозиторий : updates
Краткое опи : Go support
URL : http://gcc.gnu.org
Лицензия : GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2+ and BSD
Описание : The gcc-go package provides support for compiling Go programs
: with the GNU Compiler Collection.
Где-то встречалось, что это тот же код компиляции Golang, имплементированный в GCC (все проекты - открытые), т.е. разговор в терминах "лучше-хуже", пожалуй, вряд ли уместен.
Пока я не стал устанавливать gcc-go на этот компьютер, чтобы он (по путям и умолчаниям) не смазывал, поначалу, картину с Golang.
На других компьютеров у меня стоит gcc-go (где-то я даже начинал инсталляцию именно с этого - он сам по себе самодостаточный и компилятор Go поставит по зависимостям).
При такой компиляции GCC использует динамическую сборку, и размер исполнимых файлов
под Linux может быть
в разы меньше.
Самое время доустановить и плагин Go из комплекта проекта GCC:
Код: Выделить всё
[olej@dell GoBook]$ sudo dnf install gcc-go
[sudo] пароль для olej:
Последняя проверка окончания срока действия метаданных: 1:57:41 назад, Tue May 31 08:43:15 2016.
Зависимости разрешены.
=====================================================================================================================================
Package Архитектура Версия Репозиторий Размер
=====================================================================================================================================
Установка:
gcc-go x86_64 5.3.1-6.fc23 updates 8.9 M
libgo x86_64 5.3.1-6.fc23 updates 6.7 M
libgo-devel x86_64 5.3.1-6.fc23 updates 230 k
Результат операции
=====================================================================================================================================
Установка 3 Пакеты
Объем загрузки: 16 M
Объем изменений: 56 M
Продолжить? [д/Н]: y
Загрузка пакетов:
(1/3): libgo-devel-5.3.1-6.fc23.x86_64.rpm 266 kB/s | 230 kB 00:00
(2/3): libgo-5.3.1-6.fc23.x86_64.rpm 419 kB/s | 6.7 MB 00:16
(3/3): gcc-go-5.3.1-6.fc23.x86_64.rpm 451 kB/s | 8.9 MB 00:20
-------------------------------------------------------------------------------------------------------------------------------------
Общий размер 552 kB/s | 16 MB 00:29
Проверка транзакции
Проверка транзакции успешно завершена.
Идет проверка транзакции
Тест транзакции проведен успешно
Выполнение транзакции
Установка : libgo-5.3.1-6.fc23.x86_64 1/3
Установка : libgo-devel-5.3.1-6.fc23.x86_64 2/3
Установка : gcc-go-5.3.1-6.fc23.x86_64 3/3
Проверка : gcc-go-5.3.1-6.fc23.x86_64 1/3
Проверка : libgo-5.3.1-6.fc23.x86_64 2/3
Проверка : libgo-devel-5.3.1-6.fc23.x86_64 3/3
Установлено:
gcc-go.x86_64 5.3.1-6.fc23 libgo.x86_64 5.3.1-6.fc23 libgo-devel.x86_64 5.3.1-6.fc23
Выполнено!
Re: Go
Добавлено: 31 май 2016, 11:01
Olej
Olej писал(а):
Самое время доустановить и плагин Go из комплекта проекта GCC:
Код: Выделить всё
[olej@dell GoBook]$ which gccgo
/usr/bin/gccgo
[olej@dell GoBook]$ gccgo --version
gccgo (GCC) 5.3.1 20160406 (Red Hat 5.3.1-6)
Copyright (C) 2015 Free Software Foundation, Inc.
Это свободно распространяемое программное обеспечение. Условия копирования
приведены в исходных текстах. Без гарантии каких-либо качеств, включая
коммерческую ценность и применимость для каких-либо целей.
Но такая установка разрушает каким-то образом инсталляцию Golan ... чего не наблюдалось в Mint 17.1
Каким-то образом разрушилось:
Пришлось сделать деинсталляцию:
Код: Выделить всё
[olej@dell tasks]$ sudo dnf remove gcc-go
[sudo] пароль для olej:
Зависимости разрешены.
=====================================================================================================================================
Package Архитектура Версия Репозиторий Размер
=====================================================================================================================================
Удаление:
gcc-go x86_64 5.3.1-6.fc23 @updates 24 M
libgo x86_64 5.3.1-6.fc23 @updates 31 M
libgo-devel x86_64 5.3.1-6.fc23 @updates 1.3 M
Результат операции
=====================================================================================================================================
Удаление 3 Пакеты
Объем изменений: 56 M
Продолжить? [д/Н]: y
Проверка транзакции
Проверка транзакции успешно завершена.
Идет проверка транзакции
Тест транзакции проведен успешно
Выполнение транзакции
Удаление : gcc-go-5.3.1-6.fc23.x86_64 1/3
Удаление : libgo-devel-5.3.1-6.fc23.x86_64 2/3
Удаление : libgo-5.3.1-6.fc23.x86_64 3/3
Проверка : libgo-5.3.1-6.fc23.x86_64 1/3
Проверка : libgo-devel-5.3.1-6.fc23.x86_64 2/3
Проверка : gcc-go-5.3.1-6.fc23.x86_64 3/3
Удалено:
gcc-go.x86_64 5.3.1-6.fc23 libgo.x86_64 5.3.1-6.fc23 libgo-devel.x86_64 5.3.1-6.fc23
Выполнено!
После чего восстанавливается:
Код: Выделить всё
[olej@dell tasks]$ go env GOROOT
/usr/lib/golang
[olej@dell tasks]$ go env GOPATH
/home/olej/2016_WORK/GoBook
[olej@dell tasks]$ go build -compiler gc gopl.io/ch1/helloworld
[olej@dell tasks]$ ls -l helloworld
-rwxr-xr-x. 1 olej olej 2367440 май 31 12:38 helloworld
[olej@dell tasks]$ file helloworld
helloworld: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, not stripped
[olej@dell tasks]$ ./helloworld
Hello, 世界
С этим нужно разбираться что там с ним происходит в Fedora 23!
Re: Go
Добавлено: 31 май 2016, 13:10
Olej
Небольшая GoLang страничка для онлайновой компиляции и изучения работы кода на языке Go:
The Go Playground
Re: Go
Добавлено: 31 май 2016, 15:26
Olej
Утверждается, что компиляция с Go выполняется намного быстрее, чем в любых других языках (особенно в сравнении с языками C и C++).
Представляется, в связи с этим, возможность использовать программы Go в качестве исполнимых скриптов (сценариев) операционной системы Linux.
Этому посвящено несколько независимых проектов. Меня интересует проект gorun (
https://wiki.ubuntu.com/gorun ,
https://code.launchpad.net/~niemeyer/gorun/trunk).
1. Устанавливаю систему контроля версий Bazaar, используемую разработчиками Ubuntu:
Код: Выделить всё
[olej@dell .ssh]$ sudo dnf install bzr
[sudo] пароль для olej:
Последняя проверка окончания срока действия метаданных: 0:20:12 назад, Tue May 31 14:58:30 2016.
Зависимости разрешены.
======================================================================================================================
Package Архитектура Версия Репозиторий Размер
======================================================================================================================
Установка:
bzr x86_64 2.6.0-12.fc23 fedora 6.3 M
libtomcrypt x86_64 1.17-25.fc23 fedora 229 k
libtommath x86_64 0.42.0-6.fc23 fedora 39 k
python-crypto x86_64 2.6.1-7.fc23 fedora 468 k
python-ecdsa noarch 0.11-4.fc23 fedora 73 k
python-paramiko noarch 1.15.2-3.fc23 fedora 254 k
Результат операции
======================================================================================================================
Установка 6 Пакетов
Объем загрузки: 7.4 M
Объем изменений: 33 M
Продолжить? [д/Н]: y
Загрузка пакетов:
(1/6): python-paramiko-1.15.2-3.fc23.noarch.rpm 256 kB/s | 254 kB 00:00
(2/6): python-crypto-2.6.1-7.fc23.x86_64.rpm 385 kB/s | 468 kB 00:01
(3/6): python-ecdsa-0.11-4.fc23.noarch.rpm 223 kB/s | 73 kB 00:00
(4/6): libtommath-0.42.0-6.fc23.x86_64.rpm 183 kB/s | 39 kB 00:00
(5/6): libtomcrypt-1.17-25.fc23.x86_64.rpm 317 kB/s | 229 kB 00:00
(6/6): bzr-2.6.0-12.fc23.x86_64.rpm 633 kB/s | 6.3 MB 00:10
----------------------------------------------------------------------------------------------------------------------
Общий размер 637 kB/s | 7.4 MB 00:11
Проверка транзакции
Проверка транзакции успешно завершена.
Идет проверка транзакции
Тест транзакции проведен успешно
Выполнение транзакции
Установка : libtommath-0.42.0-6.fc23.x86_64 1/6
Установка : libtomcrypt-1.17-25.fc23.x86_64 2/6
Установка : python-crypto-2.6.1-7.fc23.x86_64 3/6
Установка : python-ecdsa-0.11-4.fc23.noarch 4/6
Установка : python-paramiko-1.15.2-3.fc23.noarch 5/6
Установка : bzr-2.6.0-12.fc23.x86_64 6/6
Проверка : bzr-2.6.0-12.fc23.x86_64 1/6
Проверка : python-paramiko-1.15.2-3.fc23.noarch 2/6
Проверка : python-crypto-2.6.1-7.fc23.x86_64 3/6
Проверка : python-ecdsa-0.11-4.fc23.noarch 4/6
Проверка : libtomcrypt-1.17-25.fc23.x86_64 5/6
Проверка : libtommath-0.42.0-6.fc23.x86_64 6/6
Установлено:
bzr.x86_64 2.6.0-12.fc23 libtomcrypt.x86_64 1.17-25.fc23 libtommath.x86_64 0.42.0-6.fc23
python-crypto.x86_64 2.6.1-7.fc23 python-ecdsa.noarch 0.11-4.fc23 python-paramiko.noarch 1.15.2-3.fc23
Выполнено!
2. Загружаю сам проект gorun:
Код: Выделить всё
[olej@dell tasks]$ bzr branch lp:gorun
You have not informed bzr of your Launchpad ID, and you must do this to
write to Launchpad or access private data. See "bzr help launchpad-login".
Ответвлены 19 ревизий.
[olej@dell tasks]$ ls -l -R gorun
gorun:
итого 44
-rw-rw-r--. 1 olej olej 35147 май 31 15:24 COPYING
-rw-rw-r--. 1 olej olej 7597 май 31 15:24 gorun.go
3. Сборка
Код: Выделить всё
[olej@dell tasks]$ cd gorun
[olej@dell gorun]$ go build ./gorun.go
[olej@dell gorun]$ ls -l gorun
-rwxr-xr-x. 1 olej olej 2871080 май 31 15:28 gorun
[olej@dell gorun]$ file gorun
gorun: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, not stripped
Re: Go
Добавлено: 31 май 2016, 15:56
Olej
Код: Выделить всё
[olej@dell gorun]$ sudo cp gorun /usr/local/bin
[sudo] пароль для olej:
[olej@dell tasks]$ which gorun
/usr/local/bin/gorun
[olej@dell tasks]$ touch tiny.go
Тестовая задача:
Код: Выделить всё
[olej@dell tasks]$ cat tiny.go
#!/usr/local/bin/gorun
package main
import ( "fmt" )
func main() {
fmt.Println( "минимальное приложение" )
}
Код: Выделить всё
[olej@dell tasks]$ chmod a+x tiny.go
[olej@dell tasks]$ time ./tiny.go
go tool: no such tool "6g"
error: failed to run go: exit status 3
real 0m0.013s
user 0m0.010s
sys 0m0.006s
Вот так!
- то, что так успешно работало в полтора года назад - развалилось!
Не может быть вызван компилятор 6g по именам, унаследованным из ОС Plan 9:
Код: Выделить всё
switch runtime.GOARCH {
case "386":
return "8"
case "amd64":
return "6"
case "arm":
return "5"
}
Re: Go
Добавлено: 31 май 2016, 16:47
Olej
Olej писал(а):
2. При некоторых условиях (опциями команд) сборка может быть динамическая, с использованием shared библиотек операционной системы:
С этими опциями я разберусь попозже.
Код: Выделить всё
[olej@dell ~]$ dnf info golang-shared
Последняя проверка окончания срока действия метаданных: 8 days, 17:14:54 назад, Sun May 22 23:18:30 2016.
Доступные пакеты
Имя : golang-shared
Архитектура : x86_64
Эпоха : 0
Версия : 1.5.4
Релиз : 1.fc23
Размер : 12 M
Репозиторий : updates
Краткое опи : Golang shared object libraries
URL : http://golang.org/
Лицензия : BSD and Public Domain
Описание : Golang shared object libraries.
Код: Выделить всё
[olej@dell ~]$ sudo dnf install golang-shared
[sudo] пароль для olej:
Последняя проверка окончания срока действия метаданных: 1:35:29 назад, Tue May 31 14:58:30 2016.
Зависимости разрешены.
=====================================================================================================================================
Package Архитектура Версия Репозиторий Размер
=====================================================================================================================================
Установка:
golang-shared x86_64 1.5.4-1.fc23 updates 12 M
Результат операции
=====================================================================================================================================
Установка 1 Пакет
Объем загрузки: 12 M
Объем изменений: 77 M
Продолжить? [д/Н]: y
Загрузка пакетов:
golang-shared-1.5.4-1.fc23.x86_64.rpm 1.2 MB/s | 12 MB 00:10
-------------------------------------------------------------------------------------------------------------------------------------
Общий размер 1.1 MB/s | 12 MB 00:11
Проверка транзакции
Проверка транзакции успешно завершена.
Идет проверка транзакции
Тест транзакции проведен успешно
Выполнение транзакции
Установка : golang-shared-1.5.4-1.fc23.x86_64 1/1
Проверка : golang-shared-1.5.4-1.fc23.x86_64 1/1
Установлено:
golang-shared.x86_64 1.5.4-1.fc23
Выполнено!
Делаем 2 параллельных сборки:
Код: Выделить всё
[olej@dell tasks]$ go build -linkshared ./hello.go
[olej@dell tasks]$ go build -o hellos ./hello.go
[olej@dell tasks]$ ls -l hello*
-rwxr-xr-x. 1 olej olej 15816 май 31 16:38 hello
-rw-rw-r--. 1 olej olej 266 май 31 11:05 hello.go
-rwxr-xr-x. 1 olej olej 2367424 май 31 16:38 hellos
[olej@dell tasks]$ ./hello
Hello, 世界
[olej@dell tasks]$ ./hellos
Hello, 世界
[olej@dell tasks]$ file hello*
hello: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=ecbaadbe3483b60da122274f34abadf78d68b236, not stripped
hello.go: C source, UTF-8 Unicode text
hellos: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, not stripped
Размеры приложений, собранных из одного исходника, отличаются больше чем в 100 раз:
Код: Выделить всё
[olej@dell tasks]$ ldd hello
linux-vdso.so.1 (0x00007ffe5fbf4000)
libstd.so => /usr/lib/golang/pkg/linux_amd64_dynlink/libstd.so (0x00007f8bfbd9b000)
libc.so.6 => /lib64/libc.so.6 (0x00007f8bfb9bc000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f8bfb79f000)
/lib64/ld-linux-x86-64.so.2 (0x000056212c4b6000)
[olej@dell tasks]$ ldd hellos
не является динамическим исполняемым файлом