Problème de commande "GCC"

reven

Membre confirmé
6 Mars 2005
113
2
34
Valence
J'utilise cette commande :


gcc $* -I . -L . -lgraphdsu -lm -lrt -L /usr/X11R6/lib -lX11


et ça marche pas, cela me renvois un erreur... :(
qui ressemble à ça :

/usr/bin/ld: -L: directory name missing
collect2: ld returned 1 exit status
: command not found
:hein:


si quelqun à une idée merci d'avance ....:up:
 

osnola

Membre confirmé
14 Novembre 2004
325
29
reven a dit:
J'utilise cette commande :


gcc $* -I . -L . -lgraphdsu -lm -lrt -L /usr/X11R6/lib -lX11


et ça marche pas, cela me renvois un erreur... :(
qui ressemble à ça :

/usr/bin/ld: -L: directory name missing
collect2: ld returned 1 exit status
: command not found
:hein:


si quelqun à une idée merci d'avance ....:up:
Oui, il faut coller le répertoire à l'option -L . Cad. il te
faut remplacer -L . par -L. pour que cela marche.
 

reven

Membre confirmé
6 Mars 2005
113
2
34
Valence
Ben voilà ça marche pas.... snif :(

J'ai testé ce que tu m'as dis osnola et tous pleins d'autres trucs mais rien n'y fais...
En tous cas merci :up:

Donc je suis en L1 et projet on nous demande d'utiliser une bibliothèque allégé de X11, donc on a les codes sources de "graphdsu" à compiler et des instructions pour compiler nos TPs avec cette bibliothéques...

Tout est ici -----> Voir la pièce jointe 7580

:rolleyes: Mais je suis pas le seul à vouloir la faire marcher chez moi, et là les problèmes commencent, car tout ça est prévu pour fonctionner sur un système solaris...
 

ntx

Vénérable sage
Club MacG
15 Octobre 2004
12 053
370
92
Bonsoir,
cette commande devrait marcher :
Bloc de code:
gcc $* -I. -L. -L/usr/X11R6/lib -lX11 -o libgraphdsu.so -dynamiclib
Sinon, XCode c'est pas mal. Avec un projet "BSD Dynamic Library", ça marche aussi pour les "pas doués du makefile" ;)

PS : il est possible qu'il faille avoir le SDK de X11 d'installer pour accéder à cette librairie et ses headers.
 

reven

Membre confirmé
6 Mars 2005
113
2
34
Valence
ntx a dit:
Bonsoir,
cette commande devrait marcher :
Bloc de code:
gcc $* -I. -L. -L/usr/X11R6/lib -lX11 -o libgraphdsu.so -dynamiclib
Sinon, XCode c'est pas mal. Avec un projet "BSD Dynamic Library", ça marche aussi pour les "pas doués du makefile" ;)

PS : il est possible qu'il faille avoir le SDK de X11 d'installer pour accéder à cette librairie et ses headers.
Merci pour ta réponse :)

Alors oui ! je suis un inculte du Makefile et aussi du "BSD Dynamic Library" :zen: mais je vais me pencher sur la question...
X11 est installé donc pas de "souci".
 

ntx

Vénérable sage
Club MacG
15 Octobre 2004
12 053
370
92
Attention : X11 et le SDK (Software Development Kit) de X11 sont deux choses différentes. Celui-ci t'installes les headers dont tu auras besoin si tu utilises X11 dans un de tes développement.
X11 n'installe que les librairies. Ce n'est pas suffisant pour développer des applications X11, c'est uniquement pour les utiliser.
 
  • J’aime
Réactions: reven

ntx

Vénérable sage
Club MacG
15 Octobre 2004
12 053
370
92
Si tu ne l'as pas, ta compil va planter :D En fait tu dois avoir un répertoire /usr/include/X11 avec tous les headers qu'il faut à l'intérieur.
 

reven

Membre confirmé
6 Mars 2005
113
2
34
Valence
j'ai pas de problème avec la compil...


mais la commande que tu me donne, je ne comprend pas à quoi elle sert ??:(
 

ntx

Vénérable sage
Club MacG
15 Octobre 2004
12 053
370
92
reven a dit:
j'ai pas de problème avec la compil...
Mais encore ???
mais la commande que tu me donne, je ne comprend pas à quoi elle sert ??:(
"gcc" est la commande pour compiler
Les flags :
-I pour ajouter un répertoire contenant des headers ou include, fichiers *.h, (par défaut seuls /usr/include et /usr/local/include sont pris en compte)
-L pour jouter un répertoire contenant des librairies (par défaut seuls /usr/lib et /usr/local/lib sont pris en compte)
-o donne le nom de fichier obtenu par la compilation
-dynamiclib indique qu'on veut générer une librairie dynamique et pas un programme.

Donc cette commande va te générer la librairie libgraphdsu.so qui pourra être utilisée dans tes futurs projets. La librairie que tu génères sur ton Mac ne pourras bien entendu n'être utilisée que sur ton Mac pas sur un PC. Mais la commande elle marchera sur Mac OSX comme sur Linux.
 

reven

Membre confirmé
6 Mars 2005
113
2
34
Valence
ntx a dit:
Mais encore ???
Quand je fait le make je n'ai pas de problème de compil., mis à part quelques "Warnings" duent à un oublie de string.h...

et apparement j'ai le sdk de X11. (j'ai tout selectionné en installant les devTools)
 

osnola

Membre confirmé
14 Novembre 2004
325
29
reven a dit:
Quand je fait le make je n'ai pas de problème de compil., mis à part quelques "Warnings" duent à un oublie de string.h...

et apparement j'ai le sdk de X11. (j'ai tout selectionné en installant les devTools)
Je viens de récupérer le .zip. Donc, en tapant, make il te créé une librairie statique libgraphdsu.a
Pour l'essayer, il te faut maintenant écrire ou trouver un fichier source qui appelle cette
librairie (ie. qui contient la fonction main), puis faire
gcc -o essai mon_fichier.c -L. -lgraphdsu -L/usr/X11R6/lib -lX11