web-dev-qa-db-fra.com

collect2: erreur fatale: impossible de trouver la compilation 'ld' terminée

Quand j’essaie d’exécuter les programmes C et C++, j’obtiens

collect2: fatal error: cannot find 'ld' compilation terminated.

J'ai déjà installé la dernière version de GCC et G ++.

1
gaurav soni

Dans mon cas, j'ai résolu ce problème avec une solution de contournement:

Sur le répertoire bin du compilateur, j'ai créé un lien symbolique pointant vers le compilateur.

ld (ld -> powerpc-fsl-linux-ld). 

Puis, dans le script makefile ou build, j'ai ajouté le dossier toolchain à la variable PATH.

export PATH=$PATH:"toolchain-dir-absolute-path"

ça a marché!

2
JaimePereira

Notre équipe a eu la même erreur lors de la construction de RHEL6 DTS2 via AFL . Nous avons résolu ce problème en utilisant le lieur GNU au lieu de lieur doré auquel CMake semble utiliser la valeur par défaut.

Dans les lignes de commande du compilateur, cherchez -Wl,-Fuse-ld=gold et éliminez-le!

Dans nos systèmes de construction CMake, cela fonctionnait en appelant les scripts de construction avec l'option supplémentaire -DCOL_WITHOUT_GOLD.

1
user611249

Vous pouvez installer l'éditeur de liens gold via apt-get install binutils-gold.

Pour moi, cela donnait toujours des erreurs, alors que binutils-gold installait un /usr/bin/ld.gold, et via strace, il apparait que gcc veut un binaire nommé avec le triple hôte complet, par exemple. x86_64-nptl-linux-gnu-ld.gold. Je devais faire un lien symbolique ln -s /usr/bin/ld.gold /usr/bin/x86_64-nptl-linux-gnu-ld.gold, puis tout s'est bien passé.

0
Alex Miller