Я не могу найти информацию о golang в зависимости от c runtime? Если это зависит от этого, оно статически компилируется в go-binary, чтобы заставить Go-app работать везде без зависимостей?Зависит ли golang от c runtime?
Вот тема о what C-runtime is
Я не могу найти информацию о golang в зависимости от c runtime? Если это зависит от этого, оно статически компилируется в go-binary, чтобы заставить Go-app работать везде без зависимостей?Зависит ли golang от c runtime?
Вот тема о what C-runtime is
Если вы говорите об исполняемых файлах, предоставленных компилятором Go, то ответ «да или нет — это не зависит»:
В большинстве случаев, в результате исполняемая программа не зависит от библиотеки времени выполнения C. .
Однако на некоторых платформах при определенных обстоятельствах библиотека C среда получает динамически связаны В частности, это было в случае с Go версии < 1.5 на Linux при использовании разрешения DNS: среда выполнения зависит от платформы libc
реализация для обработки такого разрешения. In 1.5 this has been reworked.
Другим возможным случаем является (IIRC) Solaris, который не обеспечивает стабильного доступа к явным отказам ядра напрямую и requires routing these calls through the platform's libc
.
Существует еще один случай: с использованием cgo
, который является слоем для интерфейса. Код Go с иностранным кодом C. Используя cgo
, ваша программа Go зависит от времени выполнения C. Обратите внимание, что вы не можете использовать cgo
, но один или несколько пакетов сторонних производителей, которые вы можете использовать, могут использовать cgo
, а — транзитивно — ваша программа заканчивается в зависимости от библиотеки времени выполнения C.
Не могли бы вы уточнить, что такое «c runtime»? Go не зависит от несуществующих вещей ... – Volker
Go не требует каких-либо библиотек C, если это то, что вы просите. – JimB
[Ref] (http://stackoverflow.com/q/36783409/2285935) –