Включение объектных файлов при компиляции go - PullRequest
0 голосов
/ 20 сентября 2019

Скажите, что у меня есть объектный файл с именем test.o.Он содержит ссылку на функцию с именем say.Также скажите, что у меня есть некоторый код go:

func main() {
    say()
}

Могу ли я передать объектный файл в качестве аргумента при компиляции моего источника Golang (go build --include=test.o) или ссылаться на него в исходном коде Go?

Итак, вопрос: как я могу получить доступ к функции, хранящейся в test.o, из моего кода Go?

1 Ответ

2 голосов
/ 20 сентября 2019

Итак, вопрос: как я могу получить доступ к функции, хранящейся в test.o, из моего кода Go?

Вы не можете.

Что ж, ваш вопроснеясно.Если у вас есть некоторый C-код, скомпилированный для некоторого .o, вы можете использовать cgo и call from, чтобы перейти в .so, сделанный из вашего .o.Читайте о cgo, как это сделать.Вы можете скомпилировать код go, чтобы он мог загружаться динамически во время выполнения.Этот механизм называется плагинами.Все это сложно .Лучший совет: прекратите все, что вы пытаетесь, и измените дизайн.Ваш вопрос пахнет проблемой XY.Go скомпилирован из исходного кода.

...