hi
ich hab da ma ne frage:
also ich benutze suse 9.3 und eclipse 3.3.0 für c/c++
nun hab ich ein programm geschrieben was sich mir einer datenbank connectet und da halt ne tabelle ausliest...
dieses projekt comilier ich zur zeit über ein eigens geschriebenes makefile...
ich würde nun gern dieses projekt aber in eclipse comilieren...
also erstmal fix die funktionierenden sourcen:
makefile: main.c: common.c: common.h: [/B] so also wie gesagt der code geht so wenn ich ihn über das makefile aufrufe... wenn ich im eclipse den code aufrufe bekam ich als erstes: er kennt die mysql.h net das hab ich behoben indem ich in den projektoptionen unter c/c++ build --> settings --> directories --> den pfad zur mysql.h eingetragen hab zusätzlich habe ich gcc c compiler --> libaries -> /usr/include/mysql -lmysqlclient -lm eingetragen damit konnte ich es erstmal compilieren... Launching MySQL3 (Time of error: 27.August 2007 ... ) das ist auch vollkommen richtig der ordner MySQL3 existiert nicht im ordner Debug... aber sollte der net automatisch erzeugt werden? wie bekomm ich das programm zum laufen? [/B][/B]CC = gcc INCLUDES = -I/usr/include/mysql LIBS = -L/usr/include/mysql -lmysqlclient -lm all: myapp main.o: main.c common.h $(CC) -c $(INCLUDES) main.c common.o: common.c common.h $(CC) -c $(INCLUDES) common.c myapp: main.o common.o $(CC) -o myapp main.o common.o $(LIBS) clean: rm -f myapp main.o common.o [B]
[/B][/B]/* main.c */ #include <stdio.h> #include <mysql.h> #include "common.h" #define def_db_host "10.0.88.104" #define def_db_user "test" #define def_db_name "avs" #define def_db_port 0 #define def_unix_socket NULL MYSQL *mysql; int main(int argc, char *argv[]){ MYSQL_RES *res_set; char *db_pass; db_pass = get_tty_password(NULL); mysql = db_connect (def_db_host, def_db_user, db_pass, def_db_name, def_db_port, def_unix_socket, 0); if(mysql == NULL){ exit(1); }else{ fprintf(stdout, "Verbunden.\n"); if(mysql_query(mysql, "select * from user")==0){ res_set = mysql_store_result(mysql); if(res_set != NULL){ print_result_set(mysql, res_set); mysql_free_result(res_set); }else{ if(mysql_field_count(mysql)>0){ fprintf(stderr, "Keine Ergebnismenge, mysql_store_result() gescheitert: %s\n", mysql_error(mysql)); }else{ printf("Abfrage nicht für Datenbankrückgabe vorgesehen.\n"); } } }else{ fprintf(stderr, "Abfrage gescheitert:%s\n",mysql_error(mysql)); } } db_disconnect(mysql); exit(0); } void print_result_set(MYSQL *mysql, MYSQL_RES *res_set){ unsigned int f; MYSQL_ROW row; printf("huhu"); while((row = mysql_fetch_row(res_set))!=NULL){ f=0; while(f<mysql_num_fields(res_set)){ if(f>0){ fputc('\t', stdout); fprintf(stdout, "%s", row[f]); f++; } } if(mysql_errno(mysql)==0){ fprintf(stdout,"Anzahl zurückgegebener Zeilen: %lu.\n", (unsigned long)mysql_num_rows(res_set)); }else{ fprintf(stderr, "mysql_fetch_row() gescheitert.\n"); } } } [B]
[/B][/B]/* common.c */ #include <stdio.h> #include <mysql.h> #include "common.h" MYSQL *db_connect(char *db_host, char *db_user, char *db_pass, char *db_name, unsigned int db_port, char *unix_socket, unsigned int db_flags){ MYSQL *mysql; if((mysql = mysql_init(NULL))==NULL){ fprintf( stderr, "mysql_init() gescheitert \n"); return(NULL); } if(mysql_real_connect(mysql, db_host, db_user, db_pass, db_name, db_port, unix_socket,db_flags)==NULL){ fprintf(stderr, "mysql_real_connect() gescheitert \nFehler %u: %s\n", mysql_errno(mysql), mysql_error(mysql)); return(NULL); } } void db_disconnect(MYSQL *mysql){ mysql_close(mysql); } [B]
[/B]#ifndef COMMON_H_ #define COMMON_H_ #endif /*COMMON_H_*/ MYSQL *db_connect(char *db_host, char *db_user, char *db_pass, char *db_name, unsigned int db_port, char *db_socket, unsigned int db_flags); void db_disconnect(MYSQL *mysql); [B]
nun tritt aber noch folgender fehler auf:
Reason:
/home/lordterra/programme/workspace/MySQL3/Debug/MySQL3 not found
thx für hilfe
LordTerra