ncurses installieren und programmieren

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
The Hit-Man
Beiträge: 2253
Registriert: 21.11.2004 17:01:56
Wohnort: Menden ( Sauerland )
Kontaktdaten:

ncurses installieren und programmieren

Beitrag von The Hit-Man » 28.04.2005 12:59:57

ich wollte mal ein bischen mit den ncurses-libs unter c oder c++ spielen. nun habe ich diese auch installiert, samt dem libncurses-paket. wenn ich die ncurses.h einbinde, und dann kompeliere, kein thema. springe ich allerdings funktionen an, dann bekomme ich fehlermeldungen, das die funktionen nicht gefunden werden können (: undefined reference to `initscr' ) zum beispiel. weiß jemand, was mir genau da noch fehlt?
Wer HTML postet oder gepostetes HTML quotet oder sich gepostetes oder
gequotetes HTML beschafft, um es in Verkehr zu bringen, wird geplonkt.

damals windows, früher ubuntu, danach debian, heute arch-linux ;)

Benutzeravatar
tcs
Beiträge: 153
Registriert: 20.10.2003 14:18:16

Beitrag von tcs » 28.04.2005 13:01:11

Code: Alles auswählen

libncurses5-dev
installiert?

Cheers

tcs

Benutzeravatar
The Hit-Man
Beiträge: 2253
Registriert: 21.11.2004 17:01:56
Wohnort: Menden ( Sauerland )
Kontaktdaten:

Beitrag von The Hit-Man » 28.04.2005 13:06:58

ja, ist installiert.
Wer HTML postet oder gepostetes HTML quotet oder sich gepostetes oder
gequotetes HTML beschafft, um es in Verkehr zu bringen, wird geplonkt.

damals windows, früher ubuntu, danach debian, heute arch-linux ;)

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 28.04.2005 13:12:46

und hast du auch die ncurses library beim linken angegeben ?

Benutzeravatar
The Hit-Man
Beiträge: 2253
Registriert: 21.11.2004 17:01:56
Wohnort: Menden ( Sauerland )
Kontaktdaten:

Beitrag von The Hit-Man » 28.04.2005 13:17:27

hmmm, da sagste was. dachte die sind im startdart verzeichniß, wie zum beispiel iostream.h. und unter anjuta sollte das doch auch gleich richtig eingestellt sein. wie gebe ich den an, wo die dateien sich für den linker dann befinden. nutze den g++ compiler, nach dem kompelieren, linkt dieser ja auch gleich, oder?
Wer HTML postet oder gepostetes HTML quotet oder sich gepostetes oder
gequotetes HTML beschafft, um es in Verkehr zu bringen, wird geplonkt.

damals windows, früher ubuntu, danach debian, heute arch-linux ;)

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 28.04.2005 13:36:57

sowohl die ncurses header, als auch die libraries sind im entsprechenden Standardverzeichnis. Aber genauso wie du dem Compiler (eigentlich Precompiler) mitteilst, welche Header du verwenden willst (mit "#include <...>"), mußt du dem Linker auch sagen, welche Libraries du verwenden möchtest (-lncurses).

Mit Anjuta habe ich mich noch nicht wirklich auseinandergesetzt, üblicherweise (bei Verwendung von automake), definiert man jedoch diese Libraries über eine Variable "...LDADD".

Gruß
gms

Benutzeravatar
The Hit-Man
Beiträge: 2253
Registriert: 21.11.2004 17:01:56
Wohnort: Menden ( Sauerland )
Kontaktdaten:

Beitrag von The Hit-Man » 28.04.2005 13:44:50

bin recht neu, beim coden unter linux. unter win, ist es ja nicht ganz so schwer, also das einbinden von includes. die haben ja meist ne fette ide dabei, wo man alles einstellen kann. nun gut. habe ein kleines testprogramm für die ncurses geschrieben. wie wäre denn dann der gcc oder g++ befehl um die libs mit einzubinden. gcc testprogramm.cc ??? da müßte ja dannn noch ne option bei, damit er die libs findet.
Wer HTML postet oder gepostetes HTML quotet oder sich gepostetes oder
gequotetes HTML beschafft, um es in Verkehr zu bringen, wird geplonkt.

damals windows, früher ubuntu, danach debian, heute arch-linux ;)

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 28.04.2005 13:50:56

wenn die libs im Standardverzeichnis liegen:

Code: Alles auswählen

gcc -o testprogramm testprogramm.cc -lncurses
ansonsten

Code: Alles auswählen

gcc -o testprogramm testprogramm.cc -L<verzeichnis> -lncurses

#oder auch

gcc -o testprogramm testprogramm.cc <verzeichnis>/libncurses.<extension>
Wenn du C++ Module linkst, solltest du g++ statt gcc verwenden


Gruß
gms

Benutzeravatar
meandtheshell
Beiträge: 4054
Registriert: 14.01.2005 17:51:30

Beitrag von meandtheshell » 28.04.2005 13:54:52

@ the hit man

maybe nix neues für dich - aber einmal ganz kurz zum drüberlesen ...
da hast du im grunde das was gms dir gerade gesagt hat mit in paar worten dazu warum ...
http://www.oreilly.de/german/freebooks/ ... ch132.html

Benutzeravatar
The Hit-Man
Beiträge: 2253
Registriert: 21.11.2004 17:01:56
Wohnort: Menden ( Sauerland )
Kontaktdaten:

Beitrag von The Hit-Man » 28.04.2005 13:58:23

super, mit dem g++ klappt das. aber wie kommt es, das ich zum beispiel iostream.h nicht über diese -l option einbiden muß?
Wer HTML postet oder gepostetes HTML quotet oder sich gepostetes oder
gequotetes HTML beschafft, um es in Verkehr zu bringen, wird geplonkt.

damals windows, früher ubuntu, danach debian, heute arch-linux ;)

Benutzeravatar
The Hit-Man
Beiträge: 2253
Registriert: 21.11.2004 17:01:56
Wohnort: Menden ( Sauerland )
Kontaktdaten:

Beitrag von The Hit-Man » 28.04.2005 14:07:52

werde ich mir durchlesen. aber erstmal danke euch beiden. jetzt kann ich mal was mit ncurses testen. habe da ein nettes tutorial auf englisch gefunden. werde mich mal da durch lesen. falls ihr vielleicht eins auf deutsch kennt, sagt bitte bescheid.
Wer HTML postet oder gepostetes HTML quotet oder sich gepostetes oder
gequotetes HTML beschafft, um es in Verkehr zu bringen, wird geplonkt.

damals windows, früher ubuntu, danach debian, heute arch-linux ;)

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 28.04.2005 14:09:53

poste bitte einmal dein komplettes Kommando und die vollständige Ausgabe

[edit] hat sich ja erledigt [/edit]

Gruß
gms

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 28.04.2005 14:15:42

The Hit-Man hat geschrieben:super, mit dem g++ klappt das. aber wie kommt es, das ich zum beispiel iostream.h nicht über diese -l option einbiden muß?
Diese Funktionen befinden sich in der libc, also der c runtime und werden daher automatisch vom gcc/g++ dazugelinkt

Gruß
gms

Benutzeravatar
The Hit-Man
Beiträge: 2253
Registriert: 21.11.2004 17:01:56
Wohnort: Menden ( Sauerland )
Kontaktdaten:

Beitrag von The Hit-Man » 28.04.2005 14:18:34

verstehe, alles klar, danke. gehören so zu sagen zum standart des compilers. wie zum beispiel unter windows das mingw. dort müßte ich die ncurses ( wenn es die auf der plattform gibt ) auch mit der -l option einbinden.
Wer HTML postet oder gepostetes HTML quotet oder sich gepostetes oder
gequotetes HTML beschafft, um es in Verkehr zu bringen, wird geplonkt.

damals windows, früher ubuntu, danach debian, heute arch-linux ;)

Antworten