Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Membina Statik CGO Boleh Laku dengan Perpustakaan Oracle di Linux/Ubuntu?

Bagaimana untuk Membina Statik CGO Boleh Laku dengan Perpustakaan Oracle di Linux/Ubuntu?

Barbara Streisand
Barbara Streisandasal
2024-11-29 09:19:09224semak imbas

How to Build a Static CGO Executable with Oracle Libraries on Linux/Ubuntu?

Cuba Membina Statik CGO Boleh Laku dengan Oracle Libraries pada Linux/Ubuntu: Ralat Tidak Dijangka

Masalah:

Membina boleh laku yang dipautkan secara statik dengan perpustakaan CGO dan Oracle pada hasil Linux/Ubuntu dalam ralat semasa proses binaan, khususnya gagal mencari perpustakaan Oracle -lclntsh.

Penyelesaian:

  1. Jana Pustaka Statik (libclntst .a):
    a. Pasang pakej pangkalan data Oracle yang lengkap jika belum selesai.
    b. Jalankan $ORACLE_HOME/bin/genclntst untuk menjana perpustakaan statik yang hilang libclntst12.a.
  2. Pautan dengan Pustaka Dijana:
    a. Ubah suai arahan binaan anda untuk memasukkan perpustakaan yang dijana libclntst12.a.
    b. Contoh: pergi build -work -x -ldflags " -v -linkmode external -extldflags -static -L/usr/lib/oracle/12.1/client64/lib -lclntst12" ${MAIN_SRC}
  3. Mengendalikan Simbol Hilang (jika ada):
    a. Gunakan ldd untuk menyemak simbol yang tidak dapat diselesaikan dalam boleh laku yang dipautkan secara statik.
    b. Gunakan nm untuk mencari sumber simbol yang hilang dalam perpustakaan Oracle.
    c. Pautkan dengan perpustakaan tambahan untuk menyelesaikan simbol yang hilang.
  4. Nota Tambahan:
    a. Pautan statik memerlukan penyelesaian semua kebergantungan secara manual.
    b. Untuk versi Oracle yang lebih lama, perpustakaan statik tambahan daripada masa jalan ICC mungkin diperlukan.

Atas ialah kandungan terperinci Bagaimana untuk Membina Statik CGO Boleh Laku dengan Perpustakaan Oracle di Linux/Ubuntu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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