Après avoir consciencieusement suivi les instructions d'installation sous Linux de Swift.org sous Linux, je rencontre un problème qui empêche de compiler quoi que ce soit sur une machine Ubuntu 18.04. Le REPL semble fonctionner, mais l'erreur suivante apparaît lors de la compilation (lors de l'appel de Swift build
):
/usr/bin/ld: cannot find -lstdc++
Le rapport de bug complet contient plus de détails [SR-9093] . Je ne sais pas du tout quoi faire pour résoudre ce problème, des problèmes similaires ont déjà été mentionnés dans d'autres rapports de bogues, par exemple sur ce très ancien [SR-35].
Que devrais-je faire?
Je vous remercie
Je suppose que vous avez déjà installé libstdc ++ avec succès et que vous avez défini les autorisations correctement. Mais je doute vraiment qu’il ait été installé correctement, mais il a été installé avec une corruption quelconque. La corruption s'est produite parce que vous n'avez pas installé libstdc ++ via un gestionnaire de paquets. Le résultat était une sorte d'étrangeté dans la base de données du gestionnaire de paquets qui affectait l'ensemble du système. Exactement pourquoi ajouter quelque chose dans un dossier devrait changer quoi que ce soit. Je ne sais pas pourquoi cela se produit, sauf si le dossier est chaud, c'est-à-dire lié symboliquement à un programme qui n'a aucune tolérance pour les piratages, comme la simple copie d'un fichier dans le dossier. Donc, pour l'instant, essayez d'installer à nouveau libstdc ++. Ci-dessous se trouve le lien vers le fichier pour télécharger à nouveau le programme correct, ce qui est compatible avec AMD64.
http://security.ubuntu.com/ubuntu/pool/main/g/gcc-5/libstdc++6_5.4.0-6ubuntu1~16.04.10_AMD64.deb
Et ci-dessous sont quelques liens pour aider
Installez libstdc ++
Sudo apt install libstdc++6
Il semble possible que l'installation d'apt n'ait pas exécuté le programme ldconfig
, qui devrait être exécuté pour ajouter la bibliothèque à la liste de celles que ld.so
connaît.
Il semblerait que vous puissiez le faire manuellement:
Sudo ldconfig
IMPORTANTMISE EN GARDE: Je n'ai pas Ubuntu et je n'ai pas pu tester cela. Et c'est une commande
Sudo
. Courez à vos risques et périls, YMMV, etc.
Si cela ne fonctionne pas, il est possible qu'un fichier appelé /etc/ld.so.conf
ne soit pas configuré pour rechercher le répertoire dans lequel libstdc ++ s'est terminé. Je n'oserais pas essayer de décrire comment résoudre ce problème.