2011-03-06 4 views
-1

Ceci est le fichier d'en-tête et son fichier C: cs50.h et cs50.ccomment ajouter une bibliothèque à « faire » commande dans c

Maintenant, je les utiliser dans le suivant exemple http://www.paste.ubuntu.com/576370/ - qui n'est plus disponible.

je l'ai déjà mis le fichier d'en-tête dans /usr/bin/include ou quelque chose comme ça et quand je tente de compiler mon code à l'aide gcc -o xxx xxx.c, il ne fonctionne pas, alors essayé de résoudre ce problème et la manière suivante travaillé: http://www.paste.ubuntu.com/576371/ - qui n'est plus disponible.

Maintenant, je veux faire quelque chose pour que la commande 'make' fonctionne comme le fait le gcc.

Que dois-je faire?


Ce qui suit est l'ancien sujet:

j'utilisais commande gcc à compiler des programmes C, mais après une période de temps j'ai eu un problème. J'ai besoin de pour compiler un nouveau fichier d'en-tête et utiliser comme une bibliothèque.

Le fichier d'en-tête appelé cs50.h.

donc après l'avoir fait et il est ok, je peux compiler en utilisant les éléments suivants

gcc -o xxx xxx.c -lcs50 

Il fonctionne, mais maintenant je veux utiliser la commande make et je ne peux pas le faire fonctionner.

Il ne suffit pas de compiler le fichier d'en-tête et la bibliothèque comme gcc était avant d'éditer pour accepter la bibliothèque cs50.

Alors maintenant, je veux ajouter à la commande « make » les éléments suivants: -lcs50

Quelqu'un peut-il me aider dans cette s'il vous plaît?

+4

Quelqu'un peut probablement vous aider * si vous nous montrez votre Makefile *. –

+1

Les pâtes Ubuntu ont été supprimées. Cette question n'est pas utile aux autres sans eux. – Moshe

+0

Je vote pour clore cette question hors-sujet car les liens définissant le code et les problèmes ne sont plus disponibles, et l'information ici n'est pas vraiment unique (il y a beaucoup d'autres questions sur des problèmes similaires). –

Répondre

2

Près du haut de votre Makefile, ajoutez la ligne:

 
LDLIBS = -lcs50 

Si vous utilisez des règles par défaut de MAKE (implicites) pour le bâtiment, alors c'est tout ce que vous devez faire. Si vous utilisez des règles explicites, vous devrez ajouter $ (LDLIBS) à vos règles explicites.

S'il n'y a pas Makefile, puis faire est d'utiliser des règles par défaut, et vous pouvez soit créer un makefile avec

 
echo LDLIBS = -lcs50 > Makefile 

ou dire faire un lien avec certaines bibliothèques en spécifiant les bibliothèques requises LDLIBS dans le environnement.Par exemple, si vous utilisez un, vous pouvez le faire shell dérivé sh-(quoi que ce soit autre que csh ou tcsh):

 
LDLIBS=-lcs50 make target 

Si vous utilisez une variante csh, vous pouvez faire:

 
env LDLIBS=-lcs50 make target 

ou juste faire (encore une fois, pour les shells non-csh)

 
export LDLIBS=-lcs50 

avant d'exécuter make. (Pour les variantes de csh, faites setenv LDLIBS -lcs50)

+0

comment ouvrir le fichier makefile? – XMasterrrr

+0

@Xmasterrrr $ EDITOR Makefile (ie, "vi Makefile", ou "emacs makefile" ou "nedit GNUMakefile" .... les possibilités sont infinies) –

+0

où est l'emplacement de celui-ci? – XMasterrrr

0

Avez-vous oublié que vous devez indiquer à gcc dans quel répertoire se trouve la bibliothèque CS50?

gcc … -L/directory/for/cs50_library -lcs50 
+0

Donc, je vais commencer par – XMasterrrr

Questions connexes