Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

la PATH de ld

3 réponses
Avatar
Frédéric Fauberteau
bonsoir,
voilà, j'ai un compte linux de 50 Mo et je voudrais installer un jeu
utilisant SDL. J'ai donc compilé cette bibliothèque, ainsi que
SDL_mixer. Mais lorsque je veux compiler le jeu, le script configure
échoue sur -lSDL_mixer.
Comment pourrais-je faire comprendre à ld que -lSDL_mixer doit être lié
aux bibliothèques de mon compte, sachant que le serveur ne dispose pas
de SDL, et que je ne peux pas être root ?
Existe-t-il un fichier rc pour ld ? une variable à ajouter à .bashrc ?

Merci d'avance.

3 réponses

Avatar
Philippe Delsol
bonsoir,
Bonsoir,

voilà, j'ai un compte linux de 50 Mo et je voudrais installer un jeu
utilisant SDL. J'ai donc compilé cette bibliothèque, ainsi que
SDL_mixer. Mais lorsque je veux compiler le jeu, le script configure
échoue sur -lSDL_mixer.


Il faut ajouter l'option -Lchemin où chemin est l'endroit où se trouve
la lib.

Comment pourrais-je faire comprendre à ld que -lSDL_mixer doit être lié
aux bibliothèques de mon compte, sachant que le serveur ne dispose pas
de SDL, et que je ne peux pas être root ?
Existe-t-il un fichier rc pour ld ? une variable à ajouter à .bashrc ?

Merci d'avance.


Philippe

Avatar
no_spam
On Fri, 02 Apr 2004 18:58:15 +0200, Frédéric Fauberteau wrote:

bonsoir,
voilà, j'ai un compte linux de 50 Mo et je voudrais installer un jeu
utilisant SDL. J'ai donc compilé cette bibliothèque, ainsi que
SDL_mixer. Mais lorsque je veux compiler le jeu, le script configure
échoue sur -lSDL_mixer.
Comment pourrais-je faire comprendre à ld que -lSDL_mixer doit être lié
aux bibliothèques de mon compte, sachant que le serveur ne dispose pas
de SDL, et que je ne peux pas être root ?
Existe-t-il un fichier rc pour ld ? une variable à ajouter à .bashrc ?


man ld.
Il y est très précisément expliqué comment et ou ld cherche les
librairies à linker au "chapitre" relatif à l'option:
-rpath-link

Avatar
no_spam
On Wed, 12 May 2004 15:43:02 +0200, Jseb wrote:

man ld.
Il y est très précisément expliqué comment et ou ld cherche les
librairies à linker au "chapitre" relatif à l'option:
-rpath-link


Tiens à propos: je n'ai jamais compris pourquoi pour compiler avec
glut, j'étais obligé de faire cela:

gcc -L /usr/X11R6/lib -lglut toto.c

Parce que si je fais cela: gcc -lglut toto.c , ça se vautre au linkage
("/ld cannont find -lglut").

bien entendu, dans "/etc/ld.so.conf", j'ai bien spécifié
"/usr/X11R6/lib".
Et j'ai refait un "ldconfig -v" qui me montre bien que mon chemin a
été pris en compte. Un hexdump sur le fichier "/etc/ld.so.cache" me
le confirme.

Malgré cela, ça marche pas sans spécifier le path au linkage.
Comprends pas.


Est-ce bien une librairie dynamique ?
Si c'est le cas, la spec de GNU ld dit qu'il utilise le ld.so.conf
en fallback... S'il ne le fait pas, c'est que c'est une version buggée...

Si c'est une librairie statique, c'est normal que ça ne marche pas:
ld.so.conf est la configuration du link dynamique...