Я пишу библиотеку в Go. Я планирую распространять его и с основным требованием " без исходных кодов".
Для тестирования я создал две рабочие области, такие как следующие,
WS1
- бен /
- упак /linux _amd64/lib.a
- src/lib/src.go
WS2
- бен /
- упак /
- SRC/Основной/main.go
Моя первая рабочая область (WS1) - это фактическая фиктивная библиотека, которая имеет некоторые служебные функции. Вторая рабочая область (WS2) имеет основную функцию, которая использует пакет (lib.a) из WS1.
Все работало хорошо, пока я не удалю источники из WS1. Если я удалю каталог /lib/src.go в WS1, я получаю следующую ошибку во время сборки go,
main.go: 5: 2: не удается найти пакет "lib" в любом из: /usr/local/go/src/pkg/lib (из $GOROOT)../Testing/ws1/src/lib (из $GOPATH)
В приведенном выше сообщении указывается, что мы также должны хранить исходные файлы. Предварительно скомпилированные бинарные пакеты не могут использоваться напрямую.
Основываясь на нескольких предложениях в Интернете, мы можем сохранить некоторые фиктивные источники с меткой времени меньше, чем временная метка бинарных пакетов. Но это не представляется возможным для нас. Что произойдет, если временная отметка фиктивных источников будет обновлена, к сожалению?
Я видел подобную проблему, обсуждаемую здесь, https://github.com/golang/go/issues/2775
Мои вопросы:
-
Распространение источников - единственная возможность в Голанге?
-
Почему Go не предоставляет условие для непосредственного использования файлов .a?
-
Если сохранение источника является обязательным для Go, почему эта маленькая вещь не упоминается нигде в Go? (или) Я что-то пропустил здесь?
Заранее благодарю вас за помощь!