OVH Cloud OVH Cloud

aide pour ncurses.h

13 réponses
Avatar
LLL
Bonjour,

je d=E9bute sous linux, j'aurais aim=E9 savoir comment compiler avec gcc,
en incluant la lib "ncurses.h"... =E0 priori elle est install=E9e sur ma co=
nfig...

merci d'avance

10 réponses

1 2
Avatar
Stephane Chazelas
2003/11/17, 01:15(+01), LLL:
je débute sous linux, j'aurais aimé savoir comment compiler avec gcc,
en incluant la lib "ncurses.h"... à priori elle est installée sur ma config...


ncurses.h n'est pas une "lib". La "lib" (bibliothèque en
Français) est un fichier qui se nomme libncurses.a ou
libncurses.so (ou .sl) si c'est une bibliothèque partagée.

Tu mets:

#include <ncurses.h>
(une directive to préprocesseur)

dans ton fichier C pour dire au préprocesseur et au
*compilateur* comment appeler les fonctions de ncurses, définir
les macros/types...

Tu passes l'option -lncurses lors de l'édition de liens pour que
l'*éditeur de liens* lie ton application à la bibliothèque
ncurses.


--
Stéphane ["Stephane.Chazelas" arobase "free.fr"]

Avatar
LLL
Bonjour,

Merci de se préocuper d'un petit [newbie]...

j'ai bien mis : #include <ncurses.h>
Mais lorsque je tape avec gcc : gcc -o prog prog.c -lncurses
il me met : No such file or directory


On Mon, 17 Nov 2003 01:32:55 +0100
Stephane Chazelas wrote:

2003/11/17, 01:15(+01), LLL:
je débute sous linux, j'aurais aimé savoir comment compiler avec gc c,
en incluant la lib "ncurses.h"... à priori elle est installée sur m a config...


ncurses.h n'est pas une "lib". La "lib" (bibliothèque en
Français) est un fichier qui se nomme libncurses.a ou
libncurses.so (ou .sl) si c'est une bibliothèque partagée.

Tu mets:

#include <ncurses.h>
(une directive to préprocesseur)

dans ton fichier C pour dire au préprocesseur et au
*compilateur* comment appeler les fonctions de ncurses, définir
les macros/types...

Tu passes l'option -lncurses lors de l'édition de liens pour que
l'*éditeur de liens* lie ton application à la bibliothèque
ncurses.


--
Stéphane ["Stephane.Chazelas" arobase "free.fr"]



Avatar
Thomas Nemeth
Le lun 17 nov 2003 à 11:40, LLL a tapoté :
| Bonjour,

Bonjour.


| Merci de se préocuper d'un petit [newbie]...

D'ailleurs pour apprendre à répondre, c'est ici :
http://www.giromini.org/usenet-fr/repondre.html


| j'ai bien mis : #include <ncurses.h>
| Mais lorsque je tape avec gcc : gcc -o prog prog.c -lncurses
| il me met : No such file or directory

Comme le message d'erreur n'est pas au complet (il aurait été
plus judicieux de nous mettre le résultat complet de la commande),
je suppose que cpp ne trouve pas ncurses.h auquel cas il te faut
spécifier où se trouvent ce fichier avec l'option -I :
julie[~] locate ncurses.h
/usr/include/ncurses.h

==> donne -I /usr/include

Cependant /usr/include est un répertoire où cpp va chercher les
includes par défaut (il me semble), donc c'est peut-être ld qui
ne sait pas où se trouve la bibliothèque :
julie[~] locate libncurses
/lib/libncurses.so.5
/lib/libncurses.so.5.3
/usr/lib/libncurses++.a
/usr/lib/libncurses.a
/usr/lib/libncurses.so
/usr/lib/libncursesw.so.5
/usr/lib/libncursesw.so.5.3

essaye donc aussi avec -L /lib -L /usr/lib (en fonction de ce qu'il
y a sur ta machine).


Thomas
--
BOFH excuse #320:
You've been infected by the Telescoping Hubble virus.
Avatar
DINH Viêt Hoà

Cependant /usr/include est un répertoire où cpp va chercher les
includes par défaut (il me semble), donc c'est peut-être ld qui
ne sait pas où se trouve la bibliothèque :
julie[~] locate libncurses
/lib/libncurses.so.5
/lib/libncurses.so.5.3
/usr/lib/libncurses++.a
/usr/lib/libncurses.a
/usr/lib/libncurses.so
/usr/lib/libncursesw.so.5
/usr/lib/libncursesw.so.5.3

essaye donc aussi avec -L /lib -L /usr/lib (en fonction de ce qu'il
y a sur ta machine).


heu ... -L/lib et -L/usr/lib ne sont pas déjà par défaut ? (c'est le cas
au moins sur Linux (par défaut))
ce serait plutôt dans le cas où ce serait un -L/usr/local/lib que ce
serait nécessaire, non ?

Et si locate ne marche pas, tu peux utiliser :

find / -name 'libncurses*'

(ça va prendre du temps)

--
DINH V. Hoa,

"Elle a rien pour elle"

Avatar
LLL
je ne possède que ces deux fichiers là...

/usr/lib/libncurses.so.5.3
/usr/lib/libncurses.so.5

il me manque quelque chose ???

On Mon, 17 Nov 2003 12:10:37 +0100
DINH Viêt Hoà wrote:


Cependant /usr/include est un répertoire où cpp va chercher les
includes par défaut (il me semble), donc c'est peut-être ld qui
ne sait pas où se trouve la bibliothèque :
julie[~] locate libncurses
/lib/libncurses.so.5
/lib/libncurses.so.5.3
/usr/lib/libncurses++.a
/usr/lib/libncurses.a
/usr/lib/libncurses.so
/usr/lib/libncursesw.so.5
/usr/lib/libncursesw.so.5.3

essaye donc aussi avec -L /lib -L /usr/lib (en fonction de ce qu'il
y a sur ta machine).


heu ... -L/lib et -L/usr/lib ne sont pas déjà par défaut ? (c'est l e cas
au moins sur Linux (par défaut))
ce serait plutôt dans le cas où ce serait un -L/usr/local/lib que ce
serait nécessaire, non ?

Et si locate ne marche pas, tu peux utiliser :

find / -name 'libncurses*'

(ça va prendre du temps)

--
DINH V. Hoa,

"Elle a rien pour elle"




Avatar
DINH Viêt Hoà

je ne possède que ces deux fichiers là...

/usr/lib/libncurses.so.5.3
/usr/lib/libncurses.so.5


oui, il te manque /usr/lib/libncurses.so

en fait quand tu indiques l'option -ltruc

il va chercher libtruc.so (et libtruc.a s'il n'y a pas libtruc.so) dans la
liste des répertoires valides pour les bibliothèques.

as-tu installé le package (paquetage ?) de développement lié à ncurses
dans la mandrake ?

--
DINH V. Hoa,

"Elle a rien pour elle"

Avatar
Thomas Nemeth
Le lun 17 nov 2003 à 12:10, DINH Viêt Hoà a tapoté :
|
| > essaye donc aussi avec -L /lib -L /usr/lib (en fonction de ce qu'il
| > y a sur ta machine).
|
| heu ... -L/lib et -L/usr/lib ne sont pas déjà par défaut ? (c'est le cas
| au moins sur Linux (par défaut))

Oui.
C'est pourquoi j'ai mis « en fonction de ce qu'il y a sur ta
machine » :)


| ce serait plutôt dans le cas où ce serait un -L/usr/local/lib que ce
| serait nécessaire, non ?

Oui, ou tout autre emplacement non standard.


Thomas
--
BOFH excuse #336:
The xy axis in the trackball is coordinated with the summer soltice.
Avatar
DINH Viêt Hoà

| heu ... -L/lib et -L/usr/lib ne sont pas déjà par défaut ? (c'est le cas
| au moins sur Linux (par défaut))

Oui.
C'est pourquoi j'ai mis « en fonction de ce qu'il y a sur ta
machine » :)


ah mais c'est à ça que servent les publicités sur les newsreader (en-tête
X-Newsreader ou User-Agent) : à pouvoir détecter les jeunes en Mandrake à
double pot Ninja.

--
DINH V. Hoa,

"Elle a rien pour elle"

Avatar
LLL
Je sais plus trop ce que j'ai installé en fait, je suis un peu débutant sous linux...
Je sais que j'ai essayé d'installer à nouveau ncurses en rpm mdk, mais il est déja installé,
et il ne reconnait pas le paquetage du coup...

On Mon, 17 Nov 2003 12:32:58 +0100
DINH Viêt Hoà wrote:


je ne possède que ces deux fichiers là...

/usr/lib/libncurses.so.5.3
/usr/lib/libncurses.so.5


oui, il te manque /usr/lib/libncurses.so

en fait quand tu indiques l'option -ltruc

il va chercher libtruc.so (et libtruc.a s'il n'y a pas libtruc.so) dans l a
liste des répertoires valides pour les bibliothèques.

as-tu installé le package (paquetage ?) de développement lié à nc urses
dans la mandrake ?

--
DINH V. Hoa,

"Elle a rien pour elle"




Avatar
Laurent Wacrenier
LLL écrit:
Mais lorsque je tape avec gcc : gcc -o prog prog.c -lncurses
il me met : No such file or directory


Quel est le message d'erreur exact ?

1 2