Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Mencoba membangun CGO statis yang dapat dieksekusi dengan perpustakaan Oracle di Linux/Ubuntu

  • Gunakan alat $ORACLE_HOME/bin/relink untuk menghasilkan perpustakaan bernama libclntst.a st singkatan dari perpustakaan statis. Klien Oracle biasanya tidak dikirimkan dengan file ini.
  • Coba tautkan aplikasi Anda dengan perpustakaan ini. Anda kemungkinan besar akan menemukan banyak simbol yang hilang.
  • Gunakan alat nm untuk menemukan sumber simbol yang hilang itu.
  • Dalam kasus 11gR2 perintah ini bekerja untuk saya:

    /usr/bin/c++ -Wall -ggdb3 -fPIC \
     CMakeFiles/opassgen.dir/opassgen.cpp.o \
     CMakeFiles/opassgen.dir/dbutils.cpp.o \
     CMakeFiles/opassgen.dir/common.cpp.o  \
     CMakeFiles/opassgen.dir/crypto.cpp.o  \
     n.o  -o opassgen                      \
     -rdynamic -static-libgcc -L. -Wl,-Bstatic -lstdc++ -Wl,-Bdynamic \
     /home/oracle/ivan/openssl-1.0.1t/libcrypto.a  \
     /oracle/u01/db/11.2.0.4/lib/libclntst11.a     \
     /oracle/u01/db/11.2.0.4/lib/libippdcmerged.a  \
     /oracle/u01/db/11.2.0.4/lib/libippsmerged.a   \
     -Wl,--whole-archive libtrotl.a -Wl,--no-whole-archive \
     -lpthread -ldl
    

Penautan statis mengharuskan Anda menyelesaikan semua dependensi secara manual. Dalam contoh ini libclntst11.a bergantung pada simbol dari libippdcmerged.a dan libippsmerged.a.

Pada versi Oracle yang lebih lama, seluruh basis data dibangun dan ditautkan menggunakan kompiler ICC Intel. Jadi ketika menautkan lib klien Oracle secara statis, Anda juga harus menambahkan beberapa lib statis dari runtime ICC.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara memasukkan data langsung dari Excel ke Oracle Database

  2. Tentukan VIEW di Oracle tanpa menggunakan CREATE

  3. Pemetaan JPA ke tipe yang ditentukan pengguna Oracle

  4. Apa peran dan hak istimewa yang diberikan kepada pengguna untuk melakukan CRUD (pada Oracle 12)

  5. Bagaimana cara mengkonfigurasi Ruby on Rails dengan Oracle?