1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Mitglieder
  3. LordTerra

Beiträge von LordTerra

  • Anwendung im Eclipse zum laufen bekommen

    • LordTerra
    • 27. August 2007 um 13:27

    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:

    Code
    [/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]

    main.c:

    Code
    [/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]

    common.c:

    Code
    [/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]

    common.h:

    Code
    [/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]

    [/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...
    nun tritt aber noch folgender fehler auf:

    Launching MySQL3 (Time of error: 27.August 2007 ... )
    Reason:
    /home/lordterra/programme/workspace/MySQL3/Debug/MySQL3 not found

    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?
    thx für hilfe
    LordTerra

Rechtliches

Impressum

Datenschutzerklärung