Rumah > pembangunan bahagian belakang > Golang > Bolehkah Pergi Menggunakan Perpustakaan Statik daripada Fail Luaran?

Bolehkah Pergi Menggunakan Perpustakaan Statik daripada Fail Luaran?

Barbara Streisand
Lepaskan: 2024-11-02 16:27:02
asal
1051 orang telah melayarinya

Can Go Invoke Static Libraries from External Files?

Memanggil Perpustakaan Statik dalam Go daripada Fail Luaran

Kemungkinan menggunakan fail objek statik (.so) dari dalam Go telah dipersoalkan, khususnya mengenai penggunaan fungsi syscall.LoadLibrary(). Walau bagaimanapun, mendapatkan semula rujukan kepada fungsi ini melalui pakej syscall tetap tidak berjaya.

Sememangnya, pada platform POSIX, penyelesaiannya terletak pada cgo, yang memberi kuasa kepada pembangun untuk berinteraksi dengan kod C. Fungsi dlopen dan pelengkap boleh diakses melalui cgo, membolehkan pemuatan perpustakaan dan penggunaan fungsinya.

Sebagai contoh, coretan kod Go berikut menggambarkan cara menggunakan bar bernama fungsi daripada perpustakaan bernama libfoo .so:

<code class="go">// #cgo LDFLAGS: -ldl
// #include <dlfcn.h>
import "C"

import fmt

func foo() {
     handle := C.dlopen(C.CString("libfoo.so"), C.RTLD_LAZY)
     bar := C.dlsym(handle, C.CString("bar"))
     fmt.Printf("bar is at %p\n", bar)
}</code>
Salin selepas log masuk

Kod ini menunjukkan cara cgo boleh merapatkan sambungan antara Go dan C, membolehkan penggunaan fungsi daripada perpustakaan kongsi luaran.

Atas ialah kandungan terperinci Bolehkah Pergi Menggunakan Perpustakaan Statik daripada Fail Luaran?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan