Maison > développement back-end > Golang > Comment créer un exécutable CGO statique avec les bibliothèques Oracle sous Linux/Ubuntu ?

Comment créer un exécutable CGO statique avec les bibliothèques Oracle sous Linux/Ubuntu ?

Barbara Streisand
Libérer: 2024-11-29 09:19:09
original
153 Les gens l'ont consulté

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

Essayer de créer un exécutable CGO statique avec les bibliothèques Oracle sous Linux/Ubuntu : erreur inattendue

Problème :

Créer un un exécutable lié statiquement avec les bibliothèques CGO et Oracle sous Linux/Ubuntu entraîne une erreur lors de la construction processus, échouant spécifiquement à trouver la bibliothèque Oracle -lclntsh.

Solution :

  1. Générer la bibliothèque statique (libclntst.a) :
    a. Installez le package complet de la base de données Oracle si ce n'est déjà fait.
    b. Exécutez $ORACLE_HOME/bin/genclntst pour générer la bibliothèque statique manquante libclntst12.a.
  2. Lien avec la bibliothèque générée :
    a. Modifiez votre commande build pour inclure la bibliothèque générée libclntst12.a.
    b. Exemple : allez build -work -x -ldflags " -v -linkmode external -extldflags -static -L/usr/lib/oracle/12.1/client64/lib -lclntst12" ${MAIN_SRC}
  3. Gérer les symboles manquants (le cas échéant) :
    a. Utilisez ldd pour vérifier les symboles non résolus dans l'exécutable lié statiquement.
    b. Utilisez nm pour trouver la source des symboles manquants dans les bibliothèques Oracle.
    c. Créez un lien avec des bibliothèques supplémentaires pour résoudre les symboles manquants.
  4. Remarques supplémentaires :
    a. La liaison statique nécessite de résoudre toutes les dépendances manuellement.
    b. Pour les anciennes versions d'Oracle, des bibliothèques statiques supplémentaires du runtime ICC peuvent être nécessaires.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal