Anfängerproblem c++

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
ZzLeCzZ
Beiträge: 245
Registriert: 15.12.2003 19:34:00

Anfängerproblem c++

Beitrag von ZzLeCzZ » 27.07.2004 12:39:11

Hi
ich probier gerade was mit mysql++ rum zu programieren bei make kommen aber 1000 Fehlermeldungen in dieser art

Code: Alles auswählen

/usr/include/sqlplus/sql_query2.hh:6: error: Fehler beim Parsen before '&' token
/usr/include/sqlplus/sql_query2.hh:8: error: `throw' used prior to declaration
/usr/include/sqlplus/sql_query2.hh:8: Warnung: data definition has no type or storage class
/usr/include/sqlplus/sql_query2.hh:9: error: Fehler beim Parsen before '}' token
/usr/include/sqlplus/sql_query2.hh:10: error: Fehler beim Parsen before '&' token
/usr/include/sqlplus/sql_query2.hh:12: Warnung: data definition has no type or storage class
/usr/include/sqlplus/sql_query2.hh:13: error: Fehler beim Parsen before '}' token
In Datei, eingefügt von /usr/include/sqlplus/sqlplus.hh:57,
                    von hello.c:2:
/usr/include/sqlplus/coldata3.hh:11:18: string: Datei oder Verzeichnis nicht gefunden
In file included from /usr/include/sqlplus/sqlplus.hh:58,
                 from hello.c:2:
/usr/include/sqlplus/coldata4.hh:13: Warnung: Parameternamen (ohne Typen) in Funktionsdeklaration
/usr/include/sqlplus/coldata4.hh:13: error: conflicting types for `strip_all_blanks'
hier noch mein make file:

Code: Alles auswählen

PROG=hello

LIB=-L/usr/lib/mysql -L/usr/local/lib -lsqlplus
INCLUDE=-I/usr/local/include -I/usr/include/mysql -I/usr/include/sqlplus
LAGS=-Wno-deprecated -lmysqlclient

CC=gcc

CFLAG  = -c

$(PROG): $(PROG).o
	$(CC) -o $(PROG) $(PROG).o -lm

$(PROG).o: $(PROG).c  
	$(CC) $(CFLAG) $(PROG).c $@ ${LIB} ${INCLUDE}

clean:
	rm -f *.o
	rm -f $(PROG)
in c file hab ich folgende beiden dateien eingefügt:

#include <stdio.h>
#include <sqlplus.hh>

was findet der jetzt nicht?

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 27.07.2004 14:24:50

C != C++

Du schreibst ein C++ Programm, also musst du auch mit einem C++-compiler compilieren.

ersetze in deinem Makefile gcc durch g++

PS: statt <stdio.h> sollte man nach ISO C++ <cstdio> nehmen (IIRC); das ist aber nur kosmetische Natur.

Dennoch solltest du dich bald von printf und co verabschieden, und stattdessen mit iostreams arbeiten. Es ist wirklich angenehmer ;)

ZzLeCzZ
Beiträge: 245
Registriert: 15.12.2003 19:34:00

Beitrag von ZzLeCzZ » 27.07.2004 15:46:41

so das mit dem c ->c++ hatt schonmal geholfen :-) jetzt sagt der nur noch :

Code: Alles auswählen

g++ -o hello hello.o -lm
hello.o(.text+0x1f): In function `main':
: undefined reference to `mysql_init'
hello.o(.text+0x77): In function `main':
: undefined reference to `mysql_real_connect'
hello.o(.text+0x9a): In function `main':
: undefined reference to `mysql_query'

...
findet der jetzt irgendeine lib nicht?

ZzLeCzZ
Beiträge: 245
Registriert: 15.12.2003 19:34:00

Beitrag von ZzLeCzZ » 27.07.2004 15:56:41

ok funzt :-) makefile sieht jetzt so aus:

Code: Alles auswählen

PROG=hello

LIB=-L/usr/lib/ -L/usr/local/lib -lsqlplus 
INCLUDE=-I/usr/local/include -I/usr/include/mysql -I/usr/include/sqlplus
LAGS=-Wno-deprecated -lmysqlclient

CC=g++

CFLAG  = -c

$(PROG): $(PROG).o
	$(CC) -o $(PROG) $(PROG).o -lm ${LIB}

$(PROG).o: $(PROG).c  
	$(CC) $(CFLAG) $(PROG).c $@ ${INCLUDE}

clean:
	rm -f *.o
	rm -f $(PROG)
hatte in dieser zeile

Code: Alles auswählen

$(PROG): $(PROG).o
	$(CC) -o $(PROG) $(PROG).o -lm ${LIB}
${LIB} vergessen

ZzLeCzZ
Beiträge: 245
Registriert: 15.12.2003 19:34:00

Beitrag von ZzLeCzZ » 27.07.2004 16:52:38

sorry wenn ich jetzt nerve aber nächstes problem, kennt jemand ein tutorial wo so simple sachen wie :
cursor in der console bewegen
bildschirm löschen
tastendruck verarbeiten ( nicht cin)...

such schon ne weile und find nix
thx

tylerD
Beiträge: 4068
Registriert: 10.07.2002 17:34:13
Wohnort: Halle/Saale
Kontaktdaten:

Beitrag von tylerD » 27.07.2004 17:00:11

Kenn mich da zwar nicht so aus, und vielleicht ist es ganz schön Overhead, aber ich glaub die ncurses [1] Bibliotheken lassen sich für soetwas recht gut verwenden. Docu findest du zum Beispiel hier [2].

cu

[1] http://www.gnu.org/software/ncurses/
[2] http://en.tldp.org/HOWTO/NCURSES-Programming-HOWTO/

ZzLeCzZ
Beiträge: 245
Registriert: 15.12.2003 19:34:00

Beitrag von ZzLeCzZ » 27.07.2004 17:28:17

thx genau das hab ich gesucht :-)

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 27.07.2004 17:57:29

Denk' aber dran, dass solche Programme nicht mehr platformunabhängig sind; unter Windows z.B. muss man die Console ganz anders ansprechen.

Antworten