Ligne d'édition de liens

silio Messages postés 12 Statut Membre -  
mamiemando Messages postés 34245 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

je ne sais pas comment est construit un makefile, mais je voudrais savoir comment ajouter quelque chose à sa ligne d'édition de liens. Quelqu'un peut-il m'aider ?
A voir également:

3 réponses

mamiemando Messages postés 34245 Date d'inscription   Statut Modérateur Dernière intervention   7 899
 
Sans ledit makefile c'est impossible de réponse. Il faudrait nous dire ce que tu cherches à rajouter. Souvent il suffit de modifier le bon flag dans le fichier makefile. Note qu'il est également possible de modifier ces flags lorsque tu utilises la commande make. Par exemple si les lignes de compilation dans le makefile utilises CXXFLAGS tu peux taper :
make CXXFLAGS="-g -W -Wall"

Bonne chance
0
silio Messages postés 12 Statut Membre 1
 
En fait, j'ai téléchargé un petit programme et je cherche à le compiler, je suis donc toutes les instructions données dans le README mais lorsque je lance la compilation, au bout d'un moment, arrive le message suivant :
error : cannot find -lX11
On m'a conseillé la chose suivante :
"ajoute -L/usr/X11R6/lib à ta ligne d'édition de liens et ça devrait marcher."
D'ou la question, comment fait-on cela ?
0
mamiemando Messages postés 34245 Date d'inscription   Statut Modérateur Dernière intervention   7 899
 
Il faut juste installer les paquets de compilation X11.
libx11-dev - X11 client-side library (development headers)

Ensuite il faut chercher ou se trouve libX11.so :
(mando@aldur) (~) $ locate X11.so
/usr/lib/libX11.so
/usr/lib/libX11.so.6
/usr/lib/libX11.so.6.2.0

Par exemple chez moi il est dans /usr/lib (repertoire standard) comme tu peux le voir donc je n'ai pas besoin de rajouter un -L/usr/lib il est implicite. Si pour toi il est dans un autre répertoire il faut effectivement l'ajouter ou enrichir ta variable d'environnement LD_LIBRARY_PATH. En général ça consiste juste à enrichir la variable LD_FLAGS (le plus simple étant de le faire directement dans le Makefile, ou sinon tu le passes en paramètre de la commande make).

A noter que c'est le même principe pour les headers, par défaut le compilateur chercher /usr/include, sinon il faut lui préciser où chercher avec l'option -I ou -isystem. Comme ceci est commun à chaque compilation ce sera dans les CCFLAGS (ou CXXFLAGS) qu'il faudra l'ajouter.
0
silio Messages postés 12 Statut Membre 1
 
Pardon de montrer mon ignorance, mais libx11-dev, c'est une commande ? En fait quand j'écris
libx11-dev - X11 client-side library
voici ce qui apparaît :
bash: libx11-dev :command not found
0
mamiemando Messages postés 34245 Date d'inscription   Statut Modérateur Dernière intervention   7 899
 
Non c'est un paquet que tu dois installer. Cf ton gestionnaire de paquet cygwin.

Bonne chance
0