Ubuntu Suomen keskustelualueet

Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: satsuma - 17.06.07 - klo:11.57

Otsikko: Kuinka saan ncursesin toimimaan? [RATKAISTU]
Kirjoitti: satsuma - 17.06.07 - klo:11.57
Ajattelin alkaa pientä C-ohjelmaa tekemään ja siiihen
olisi tarkoitus tehdä käyttöliittymä ncursesin avulla.
Asensin paketin libncurses5, mutta jostain syystä
ei toimi.

Eli, kun yritän kääntää ohjelmaa, jossa olen include-lauseella
liittänyt ncurses.h-tiedoston, ilmoittaa kääntäjä, että

test.c:1:21: error: ncurses.h: No such file or directory

Onko kellään vinkkejä tähän?
Otsikko: Vs: Kuinka saan ncursesin toimimaan?
Kirjoitti: Nakkis - 17.06.07 - klo:12.45
Kokeile asentaa paketti libncurses5-dev. Käännettäessä lähdekoodista yleensä vaaditaan dev-paketit.
Otsikko: Vs: Kuinka saan ncursesin toimimaan?
Kirjoitti: satsuma - 18.06.07 - klo:18.50
Kiitos vastauksesta.

Jotenkin ajattelin, että tuo dev-paketti liittyisi itse kirjaston
kehittämiseen.

OK, mutta edelleen ei toimi niin kuin pitäisi. Enää ei tule
herjausta include-lauseesta, mutta ncurses-funtioita
kääntäjä ei tunnista. Kun yritän kääntää seuraavaa
ohjelmaa

Koodia: [Valitse]
#include <ncurses.h>

int main()
{
initscr(); /* Start curses mode   */
printw("Hello World !!!"); /* Print Hello World   */
refresh(); /* Print it on to the real screen */
getch(); /* Wait for user input */
endwin(); /* End curses mode   */

return 0;
}

tulee jokaisesta funktiokutusta seuraavan kaltainen virhe:
... undefined reference to 'initscr'

Puuttuuko multa mahdollisesti vielä jotain muitakin paketteja?
Otsikko: Vs: Kuinka saan ncursesin toimimaan?
Kirjoitti: Fa1r - 18.06.07 - klo:21.47
Pitäisi löytyä kuitenkin tuosta headerista kyseisen funktion esittely?

Minä mistään mitään ymmärrä, mutta:
locate ncurses.h | xargs grep initscr
Otsikko: Vs: Kuinka saan ncursesin toimimaan?
Kirjoitti: mgronber - 18.06.07 - klo:22.02
tulee jokaisesta funktiokutusta seuraavan kaltainen virhe:
... undefined reference to 'initscr'

Veikkaisin että tuo tulee linkkeriltä ja syynä on puuttuva ncurses-kirjasto eli et ole käskenyt linkkeriä linkkaamaan ohjelmaasi ncurses-kirjastoa vastaan. Jos nyt käännät tuota gcc:llä niin parametri "-lncurses" auttanee...
Otsikko: Vs: Kuinka saan ncursesin toimimaan?
Kirjoitti: tn - 18.06.07 - klo:22.06
(Ääh, mgronber ehti ensin, mutta menköön.)

tulee jokaisesta funktiokutusta seuraavan kaltainen virhe:
... undefined reference to 'initscr'

Puuttuuko multa mahdollisesti vielä jotain muitakin paketteja?

Kirjastot tulee kääntämisen yhteydessä vielä linkittää mukaan lopulliseen ohjelmaan. Eli tässä tapauksessa tähän tapaan:
Koodia: [Valitse]
gcc -lncurses ohjelma.c -o ohjelma
Vastaavasti jos käytössä on jokin IDE, tulee projektin asetuksiin lisätä kyseiset linkkeriparametrit. Eli siis jokaista kirjastoa kohden -lkirjasto.
Otsikko: Vs: Kuinka saan ncursesin toimimaan?
Kirjoitti: satsuma - 19.06.07 - klo:18.36
Linkkeristähän siinä oli kyse.

Kiitos kaikista vastauksista. ;D