«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как вызвать функции общей библиотеки Linux в Go?

Как вызвать функции общей библиотеки Linux в Go?

Опубликовано 8 ноября 2024 г.
Просматривать:498

How to Call Linux Shared Library Functions in Go?

Вызов функций общей библиотеки Linux в Go

В этом вопросе разработчик обращается за помощью в вызове функций из общего объекта (.so) файл в своем коде Go. Пакет ctypes в Python, который обеспечивает доступ к функциям C, выполняет требуемую функциональность.

Использование cgo для загрузки статической общей библиотеки

Для статического вызова функций известной общей библиотеки во время компиляции, можно использовать пакет cgo. Вот пример доступа к функции bar() из libfoo.so:

package example

// #cgo LDFLAGS: -lfoo
//

#include 

import "C"

func main() {
    C.bar()
}

Динамическая загрузка общей библиотеки с помощью cgo

В качестве альтернативы cgo может облегчить доступ к общим объектам, динамически загружаемым во время выполнения. Чтобы открыть общую библиотеку, получить адреса функций и закрыть библиотеку, необходимо использовать функции dlopen(), dlsym() и dlclose(). Однако эти функции изначально не поддерживаются Go, и для реализации необходимой логики требуется оболочка C.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3