"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como chamar funções da biblioteca compartilhada do Linux no Go?

Como chamar funções da biblioteca compartilhada do Linux no Go?

Publicado em 2024-11-08
Navegar:158

How to Call Linux Shared Library Functions in Go?

Chamando funções de biblioteca compartilhada do Linux em Go

Nesta questão, um desenvolvedor busca ajuda para chamar funções de um objeto compartilhado (.so) arquivo dentro de seu código Go. O pacote ctypes em Python, que permite acesso a funções C, serve como a funcionalidade desejada.

Usando cgo para carregamento estático de biblioteca compartilhada

Para chamar funções estaticamente biblioteca compartilhada conhecida em tempo de compilação, pode-se empregar o pacote cgo. Aqui está um exemplo para acessar a função bar() de libfoo.so:

package example

// #cgo LDFLAGS: -lfoo
//

#include 

import "C"

func main() {
    C.bar()
}

Carregamento dinâmico de biblioteca compartilhada com cgo

Alternativamente, cgo pode facilitar o acesso a objetos compartilhados carregados dinamicamente em tempo de execução. É necessário utilizar as funções dlopen(), dlsym() e dlclose() para abrir a biblioteca compartilhada, recuperar endereços de funções e fechar a biblioteca. No entanto, essas funções não são suportadas nativamente pelo Go e requerem um wrapper C para implementar a lógica necessária.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3