ne trouvez -lc et lm à g++ linux
J'utilise ubuntu et gcc et g++ fonctionnent très bien, mais aujourd'hui, il a montré:
cannot find -lm
cannot find -lc
J'ai cherché et trouvé qu'il a quelque chose à voir avec /usr/bin/ld
. qui est un lien symbolique (je l'espère) à lbd.bdf
. J'ai collé ce fichier dans le répertoire à partir de ubuntu de quelques amis pc. Il n'a pas de travail.
J'ai trouvé que -lc
moyens comprennent statique de la bibliothèque libc.un.
de même pour -lm
Je l'ai trouvé dans mon i386-linux-folders
(nom était quelque chose de différent).
J'ai essayé de blocs de code, mais même les erreurs.
qu'est-ce que votre g++ de la ligne de commande?
Faire une réinstallation des paquets de développement (p. ex. aptitude remove build-essential; redémarrage; aptitude install build-essential)
g++ -o output_fileName cpp_fileName
Faire une réinstallation des paquets de développement (p. ex. aptitude remove build-essential; redémarrage; aptitude install build-essential)
g++ -o output_fileName cpp_fileName
OriginalL'auteur Ashish Negi | 2011-09-02
Vous devez vous connecter pour publier un commentaire.
assurez-vous que votre libpath (en g++) pointe vers le répertoire(s) libm.un et de la libc.un sont situées dans (utilisez l'option-L)
Je n'ai jamais fait ça avant et ça marchait bien... Maintenant, quel est le besoin ? toujours a g++ -o output_fileName cpp_fileName. A bien fonctionné.
Votre LIBRARY_PATH est encrassées (voir linux.die.net/man/1/gcc, recherche pour LIBRARY_PATH)
Si liba et libm ne sont pas dans l'emplacement par défaut, puis il ya un gros problème. Paramètre -L est peu probable pour aider.
L'OP a perdu de son intérêt......
OriginalL'auteur KevinDTimm
le compilateur ne trouve pas statique de la glibc, vous pourriez avoir installé uniquement bibliothèques partagées
essayez
yum install glibc-statique
OriginalL'auteur user1772382
ld
est l'éditeur de liens GNU.man ld
ld combine un certain nombre d'objets et de fichiers d'archive, déménage à leurs données et de resserrer les références de symbole. Généralement la dernière étape dans le processus de compilation d'un programme à exécuter ld.
Il est utilise pour lier votre programme avec la bibliothèque C et le C de la bibliothèque math. Vous devez vous assurer que
libc6-dev
est installé:Générique ou plus, s'assurer
build-essential
, qui dépend d'une poignée de essentiel C de paquets.ld
. Lorsque vous ne parler que deld
le fardeau de la preuve est sur vous pour lui expliquer comment ces (g++
etld
) sont liés.Vos commandes ont montré statut: install ok installé
De même pour libpath, hein? Eh bien, je ne sais pas combien de programmation et *nix les OP comprend déjà, mais si vous obtenez un livre de base sur le C++, il est habituellement exaplains les concepts de base de la compilation (en gros, de prétraitement, de compilation, de liaison). Je pense que si vous lisez ces livres, puis la lecture de
ld is the linker
, qu'il sera déjà de l'aide.OriginalL'auteur Sebastian Mach