Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
problème gcc sur Debian
Envoyé par: manub

bonjour,
nouveau venu dans l'univers de la programmation Linux, j'ai envie de mettre les mains dans le cambouis d'emblée.
Donc, je m'attaque à un premier programme, qui utilise la bibliothèque du système X Window.
En théorie, pour éditer les liens, au moment de la compilation, si j'ai bien compris, je devrais exécuter la commande suivante:
gcc monfichier.c -lX11
or, le compilateur me renvoie "/usr/bin/ld: ne peut trouver -lX11"
Qu'est-ce à dire?
Que dois-je faire pour réussir à compiler mon programme (et passer à la résolution de autres erreurs smiling smiley )?
Merci

Poste le Sunday 21 December 2003 00:04:08
Répondre     Citer    
Re: problème gcc sur Debian: précision
Envoyé par: manub

après diverses bidouilles, et une consultation assidue de la documentation de gcc et de ld, j'ai fini par tenter ceci, qui a fonctionné:
J'ai copié les fichiers de bibliothèques dont j'avais besoin dans le dossier où sont les sources de mon programme et ai rajouté l'option "-L." a la ligne de commande de gcc, pour utiliser la version copiée de ces bibliothèques.
Ca a marché...
Donc, manifestement, le problème est un problème de droits d'accès aux dossiers contenant les bibliothèques dont j'ai besoin.
Comment faire, car tous ces dossier appartiennent à l'utilisateur 'root' et au groupe 'root'.

Merci de m'éclairer.

Poste le Sunday 21 December 2003 01:36:53
Répondre     Citer    
Re: problème gcc sur Debian
Envoyé par: Weedo41

slt,
vas voir sur internet et cherche de la doc sur chmod pour changer les droits d'acces.
y'a un truc que je capte pas, tu te logue pas en root pour compiler?



Laissez brûler la weed et n'oubliez personne
Dans la fumée des dieux s'effondre Babylone

Poste le Sunday 21 December 2003 12:53:03
Répondre     Citer    
Re: problème gcc sur Debian
Envoyé par: manub

parce qu'il faut être root pour compiler???
j'ignorais ce détail.
Le problème de chmod, c'est de modifier les droits d'accès sur des parties du système qui pourraient être critiques, et c'est pourquoi je n'ai pas tenté de modifier les possibilités d'accès à ces dossiers, d'autant plus que, à ce que j'ai vu, les permissions sont déjà positionnées comme il faut pour les dossiers (-x est positionné partout comme il faut).
Merci de ta réponse, en tout cas, mais peux-tu me confirmer que, en principe, un utilisateur lambda ne peut pas compiler?

Poste le Sunday 21 December 2003 13:12:59
Répondre     Citer    
Re: problème gcc sur Debian
Envoyé par: Weedo41

Je pense que c'est possible avec sudo pour compiler en tant qu'utilisateur. Mais la ca reste a vérifier.
Mais normalement je peux t'assurer qu'on se logue en root pour compiler, ca evite des grosses galeres de droit d'acces. Et puis, la compilation c'est bien de l'administration non? donc pourquoi ne pas se loguer en tant qu'administrateur?
Un utilisateur lambda comme tu l'a dis est .... un utilisateur. ce n'est donc pas a lui d'installer des progs et de les compiler. C'est une question de sécurité: imagine tu est sur un réseau, tu veux récuperer des infos chaudes, mais les mettre sur disquette est risqué, alors si tu pouvais compiler, tu te ramene le code source d'un troyen, tu compile tu execute, et c'est réglé.
Ce n'est qu'un exemple, je pense pas que ce serais le meilleur moyen. Mais ca te parait pas un peu facile?



Laissez brûler la weed et n'oubliez personne
Dans la fumée des dieux s'effondre Babylone

Poste le Sunday 21 December 2003 13:25:12
Répondre     Citer    
Re: problème gcc sur Debian
Envoyé par: twocats

Bein moi je dirais qu'il n'est pas totalement obligatoire d'être en root pour compiler, seule l'installation doit se faire en root. Exemple pour un classique "./configure", "make" et "make install" ça marche très bien ainsi :

./configure #en user
make #en user
make install #en root

De plus cette solution permet au user de pouvoir lancer le programme car si tu fais tout en root seul root pourra l'utiliser. Et puis il y a une règle d'or : ne faire en root que le STRICTE nécessaire.


Poste le Sunday 21 December 2003 14:26:39
Répondre     Citer    
Re: problème gcc sur Debian
Envoyé par: manub

Merci pour vos réponses.
Je dois préciser que ce que je compile, ce sont des programmes que je développe tout seul. C'est pourquoi je le fais comme utilisateur lambda, pour ne pas risquer d'altérer les autres programmes ou bibliothèques en faisant une mauvaise manip.
Lorsque j'installe des programme, je le fais toujours en tant qu'administrateur.

Cela dit, j'ai trouvé la parade pour pouvoir compiler en tant qu'utilisateur 'lambda': il s'agit d'ajouter l'option -L[chemin d'accès à la bibliothèque] à la ligne de commande gcc.
En l'occurrence, puisque je suis sur une Debian et que je voulais linker mon programme avec la Xlib (libX11.so), ça donne:
gcc -L/usr/X11R6/lib -lX11 [monfichier.c]
Je ne sais donc toujours pas si c'est légal de faire ça en tant qu'utilisateur, mais ça marche.
En espérant que ça puisse aider d'autres personnes...



L'homme est un homme pour le loup

Poste le Sunday 21 December 2003 15:20:41
Répondre     Citer    
Re: problème gcc sur Debian
Envoyé par: miguel2i

je confirme qu' UN UTILISATEUR LAMBA PEUT COMPILER UN PROGRAMME .
Weedo41 a tout faux. Il n'y a pas de limite pour raison de sécurité.
Si gcc et autres programmes sont installés et que l'utilisateur a le droit de
l'executer, un utilisateur peut compiler un trojan et l'executer.
Mais le trojan n'affectera que l'espace de l'utilisateur qui l'execute (à partt des programmes avec le Stick bit comme sudo et autres qui ont le droit de se faire passer pour root)
Par exemple, Si XMMS a un bug exploitable, on peux avoir un terminal de la personne qui a exécuté XMMS, et on ne peux supprimer que ces fichiers personnels ou de son groupe.

COMPILATION différent d'ADMINISTATION
un develeppeur compile ces sources mais ne fait pas forcément d'administration

pour répondre à manub :
on doit préciser à gcc où sont les libraires avec l'potion -L
par default gcc cherche les librairies dans /usr/lib/ et /lib/ (il me semble)

pour des libraires comme gtk par exemple, les options à données à gcc sont
dans des scripts gtk-config. Il suffit de compiler avec :

gcc -c monprog.c `gtk-config --cflags`
gcc -o monprog monprog.o `gtk-config --libs`

les ` se tapent AltGr 7

Il est bien de compiler avec -Wall pour que gcc nous prévienne de toutes les erreurs

Poste le Sunday 21 December 2003 22:12:05
Répondre     Citer    
Re: problème gcc sur Debian
Envoyé par: manub

Ouf!
Merci miguel2i!
pour l'ajout de l'option -L à la ligne de commande de gcc, c'est bien ce que j'avais tenté, et ça marche smiling smiley
Cela dit, ce que je ne comprends pas, c'est comment configurer gcc pour que le linker accepte de chercher par défaut dans le dossier dont j'ai besoin (ici, /usr/X11R6/lib).
La page de man de 'ld' explique que les répertoires que l'on mentionne dans le fichier ld.so.conf concernent les programmes tournant sur le système, mais *pas* le linker.
Apparemment, la page de man de gcc parle d'une variable d'environnement "SEARCHDIRS", mais elle ne semble pas exister chez moi.
Mais bon, l'essentiel est que ça marque en positionnant l'option -L, je vais continuer à feuilleter les pages de man.
Merci à tous.



L'homme est un homme pour le loup

Poste le Sunday 21 December 2003 23:26:05
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
problème gcc sur Debian
Pour poser vos questions sur les scripts shell, le Perl, le C, etc... Attention : nous ne sommes pas des spécialistes du dev, ce forum est juste pour de petites aides ponctuelles concernant le développement et les outils de développement.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons