Problem beim Kompilieren (Redhat 5)

Dieses Thema im Forum "C/C++" wurde erstellt von Andimotz80, 11.08.2010.

  1. #1 Andimotz80, 11.08.2010
    Andimotz80

    Andimotz80 Grünschnabel

    Dabei seit:
    11.08.2010
    Beiträge:
    5
    Zustimmungen:
    0
    Hallo!

    Ich habe ein c-Programm unter Redhat 4 programmiert. Wenn ich es jetzt uner RH5 kompeliere, bekomme ich folgende Fehlermeldung:

    gcc -o vmps_new vmpss.c
    /tmp/ccOoiq4W.o: In function `main':
    vmpss.c:(.text+0x27): undefined reference to `initMain'
    vmpss.c:(.text+0x4b): undefined reference to `InsertGlobalParameters'
    vmpss.c:(.text+0x6f): undefined reference to `StartConversion'
    vmpss.c:(.text+0xa0): undefined reference to `LogPrintf'
    collect2: ld returned 1 exit status

    Die Funktionen sind alle im Header im selben Verzeichnis definiert.

    Was mache ich falsch?

    Danke

    Andreas
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 floyd62, 11.08.2010
    floyd62

    floyd62 Routinier

    Dabei seit:
    01.05.2007
    Beiträge:
    309
    Zustimmungen:
    0
    Sind die Funktionen in den Include-Files wirklich "definiert", oder nur deklariert und in einem anderen C-File definiert? Dann müsstest du dieses File mit übersetzen.

    Gruss, A.
     
  4. #3 flugopa, 11.08.2010
    flugopa

    flugopa Der lernwillige

    Dabei seit:
    27.05.2006
    Beiträge:
    739
    Zustimmungen:
    0
    Ort:
    München
    definiere es richtig.
    Wenn Du mehr Quellcode zeigt, können mehr Leute helfen.
     
  5. #4 ixs, 11.08.2010
    Zuletzt bearbeitet: 11.08.2010
    ixs

    ixs Foren As

    Dabei seit:
    20.06.2008
    Beiträge:
    95
    Zustimmungen:
    0
    Wenn du weitere Dateien einbindest include "includedatei.c", musst die diese bei der Kompilierung mit angeben.
    Also:
    Code:
    gcc datei.c includedatei.o
    Oder mach einfach mal ein make clean, das hilft ab und an.
     
  6. #5 Andimotz80, 11.08.2010
    Andimotz80

    Andimotz80 Grünschnabel

    Dabei seit:
    11.08.2010
    Beiträge:
    5
    Zustimmungen:
    0
    File functions.h:
    #ifndef _FUNCTIONS_H
    #define _FUNCTIONS_H

    #include <stdarg.h>

    #define LOGFILE "log.vmpss"

    int initMain(int argc, char *argv[]);
    int CheckConfig(char *configfile);
    int deleteSpaceAndComment(char comment[1], char *row);
    int CompareNetParameter(char *row);
    int CheckNetAddress(char *row);
    int CheckIPAdress(char *row);
    int StartConversion(int argc, char *argv[]);
    int get_networks(char *file, char *pnetwork[], char *pnetmask[], char *pstartip[], char *pendip[], char *pvlan[]);
    int CheckNetworkExist(char network[], char netmask[], char vlan[], char *pnetwork[], char *pnetmask[], char *pvlan[], int net_numbers);
    int CheckNetworkNetmask(char network[], char netmask[]);
    int GetStartAndEndIp(char network[], char netmask[], char vlan[], char *pstartip[], char *pendip[], char *pvlan[], int ips_numbers);
    int ConvertInputToOutput(char *infile, char *outfile, char *pstartip[], char *pendip[], char *pvlan[], int ips_numbers);
    int GetIPAdress(char *pinputtext, char *pIpAdress);
    int GetMacAdress(char *pinputtext, char *pMacAdress);
    int GetVlan(char *pIpAdress, char *pVlan, char *pstartip[], char *pendip[], char *pvlan[], int ips_numbers);
    int CheckAndChangeOutputFile(char *poutfile, char *pIpAdress, char *pMacAdress, char *pVlan);
    int GetMacAdressOld(char *pinputtext, char *pMacAdress);
    int DeleteLine(char *file, int line);
    int AddLineInDHCP(char *poutfile, char *pIpAdress, char *pMacAdress, char *pVlan);
    int InsertGlobalParameters(int argc, char *argv[]);
    int SetHostsEntryUnsed(char startip[1024]);
    int CheckAndChangeHostsEntry(char *pIpAdress, char *pMacAdress, char *pVlan);
    void DeleteOldHostsEntry();
    #endif


    File: vmpss.c

    #include <stdio.h>
    #include <string.h>
    #include <time.h>
    #include "functions.h"
    #include "logprintf.h"
    #include "global.h"

    #define SIZE 256

    int main (int argc, char *argv[]) {
    if(initMain(argc, argv)!=0) return 1;
    else {
    if(InsertGlobalParameters(argc, argv)!=0) return 1;
    if(StartConversion(argc, argv)!=0) return 1;
    else LogPrintf(LOGFILE, LOG_DEBUG, "vmpss %s running successfully", VERSION);
    }

    return 0;
    }

    Und es findetdie Funktionen nicht.

    Bitte um Hilfe.

    danke
     
  7. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  8. #6 Andimotz80, 11.08.2010
    Andimotz80

    Andimotz80 Grünschnabel

    Dabei seit:
    11.08.2010
    Beiträge:
    5
    Zustimmungen:
    0
    Ich habs geschafft. Ich musste die obj-Files enhängen.

    Danke an alle
     
  9. ixs

    ixs Foren As

    Dabei seit:
    20.06.2008
    Beiträge:
    95
    Zustimmungen:
    0
    Das gilt natürlich auch für Bibliotheken, was ich vergessen habe zu erwähnen:

    Hier zur Sicherheit noch eine nützliche Liste der wichtigsten Optionen:
    -o Output
    -c Compile (ohne zu linken)
    -I Include Verzeichnis der Includedateien
    -I.Standard Include Verzeichnis verwenden
    -L Libary Verzeichnis der Bibliotheken
    -L.Standard Libary Verzeichnis verwenden
    -ldateiname Name der Bibliotheksdatei


    Unter Linux haben die Bibliotheken einen speziellen namen: lib+name+.so .
    Deshalb kann die Bibliothek libtest.so einfach mit -ltest eingebunden werden.
     
Thema:

Problem beim Kompilieren (Redhat 5)

Die Seite wird geladen...

Problem beim Kompilieren (Redhat 5) - Ähnliche Themen

  1. Probleme beim installieren

    Probleme beim installieren: Moin! Ich habe mir vor ein paar Wochen einen Hyrican Intel® i5, 8192MB DDR3-RAM, 1TB Speicher + 120GB SSD,GF GTX750Ti »Military 4610 PC gekauft....
  2. Probleme beim Ubuntu-Update

    Probleme beim Ubuntu-Update: Bei der Aktualisierung von Ubuntu 13.04 auf die neueste Ubuntu-Version 13.10 kann es unter bestimmten Konstellationen zu Problemen kommen....
  3. KSH: Problem beim Umleiten des Fehlerkanals

    KSH: Problem beim Umleiten des Fehlerkanals: Hallo, in einen KSH Skript führe ich folgende Befehle aus RESULT=""; ERROR=""; idsldapsearch -h localhost -p $PORT -D $USER -w $PW -s sub -b...
  4. Probleme beim lesen einer CD

    Probleme beim lesen einer CD: Hallo zusammen, ich habe eine Daten-CD mit xfburn unter Fedora 15 erstellt. Diese muss ich bei uns in der Uni-Bibliothek abgeben. Auf der CD...
  5. Probleme beim mounten eines Serververzeichnisses auf einen Client

    Probleme beim mounten eines Serververzeichnisses auf einen Client: Hallo zusammen, ich habe folgendes Problem: Wir haben einen NIS-Server mit einem User root und PW xyz. Auf diesem wurde ein Verzeichnis...