Maison  >  Article  >  Tutoriel système  >  Linux définit les chemins de bibliothèque dynamiques et les variables d'environnement

Linux définit les chemins de bibliothèque dynamiques et les variables d'environnement

王林
王林avant
2024-02-05 11:42:171162parcourir

Linux définit les chemins de bibliothèque dynamiques et les variables denvironnement

Après avoir installé les bibliothèques sources compilées sous Linux, nous devons permettre au système de les reconnaître par défaut.

Supposons que nous ayons installé la bibliothèque sous le chemin /usr/local/aarch64_qt5.12.0 :

1. Définir la configuration dynamique des liens de bibliothèque

Si la configuration dynamique du lien de bibliothèque n'est pas effectuée, le système ne pourra pas trouver le fichier *.so requis, ce qui entraînera l'échec de l'exécution du logiciel.

Vous pouvez afficher les dépendances en exécutant la commande ldd, par exemple :

pi@NanoPi-NEO-Plus2:~$ ldd untitled
        linux-vdso.so.1 =>  (0x0000ffffba839000)
        libQt5Widgets.so.5 => not found
        libQt5Gui.so.5 => not found
        libQt5Core.so.5 => not found
        libpthread.so.0 => /lib/aarch64-linux-gnu/libpthread.so.0 (0x0000ffffba7e2000)
        libstdc++.so.6 => /usr/lib/aarch64-linux-gnu/libstdc++.so.6 (0x0000ffffba653000)
        libm.so.6 => /lib/aarch64-linux-gnu/libm.so.6 (0x0000ffffba5a6000)
        libgcc_s.so.1 => /lib/aarch64-linux-gnu/libgcc_s.so.1 (0x0000ffffba585000)
        libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000ffffba43e000)
        /lib/ld-linux-aarch64.so.1 (0x0000ffffba80e000)

Le moyen le plus stupide est de copier le so compilé correspondant dans /usr/lib ou /lib S'il y en a plusieurs correspondants, ce sera un problème.

Méthode de réglage :

1) Créez un fichier de configuration de bibliothèque dynamique *.conf sous le chemin /etc/ld.so.conf.d, par exemple :

sudo vim /etc/ld.so.conf.d/Qt5.conf

Ajouter au dossier :

/usr/local/aarch64_qt5.12.0/lib

2) Charger la configuration dynamique de la bibliothèque

Exécuter la commande : sudo ldconfig

pi@NanoPi-NEO-Plus2:~$ ldd untitled
        linux-vdso.so.1 =>  (0x0000ffffa4b1a000)
        libQt5Widgets.so.5 => /usr/local/aarch64_qt5.12.0/lib/libQt5Widgets.so.5 (0x0000ffffa451d000)
        libQt5Gui.so.5 => /usr/local/aarch64_qt5.12.0/lib/libQt5Gui.so.5 (0x0000ffffa4039000)
        libQt5Core.so.5 => /usr/local/aarch64_qt5.12.0/lib/libQt5Core.so.5 (0x0000ffffa39ed000)
        libpthread.so.0 => /lib/aarch64-linux-gnu/libpthread.so.0 (0x0000ffffa39c1000)
        libstdc++.so.6 => /usr/lib/aarch64-linux-gnu/libstdc++.so.6 (0x0000ffffa3832000)
        libm.so.6 => /lib/aarch64-linux-gnu/libm.so.6 (0x0000ffffa3785000)
        libgcc_s.so.1 => /lib/aarch64-linux-gnu/libgcc_s.so.1 (0x0000ffffa3764000)
        libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000ffffa361d000)
        libdl.so.2 => /lib/aarch64-linux-gnu/libdl.so.2 (0x0000ffffa360a000)
        /lib/ld-linux-aarch64.so.1 (0x0000ffffa4aef000)

2. Définir les variables d'environnement

Lors de l'exécution de programmes associés, vous n'avez pas besoin de basculer vers le répertoire spécifié pour l'exécuter et vous pouvez l'exécuter dans n'importe quel répertoire.

Méthode de réglage :

1. La session en cours prend effet temporairement : entrée de ligne de commande export PATH=$PATH:/usr/local/aarch64_qt5.12.0/bin

2. Valide en permanence pour les utilisateurs : vi ~/.bashrc La dernière ligne d'entrée export PATH=$PATH:/usr/local/aarch64_qt5.12.0/bin

Faire prendre effet aux variables d'environnement : source .bashrc

3. Effet global et permanent :

Ajoutez un chemin vers $PATH dans /etc/profile ou /etc/bash.bashrc Si les noms sont les mêmes, vous devez placer le nouveau chemin devant les autres chemins.

export PATH=$PATH:/usr/local/aarch64_qt5.12.0/bin

Activer les variables d'environnement pour qu'elles prennent effet : source /etc/profile

pi@NanoPi-NEO-Plus2:~$ echo $PATH
/usr/local/aarch64_qt5.12.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer