Problem beim Kompilieren (Redhat 5)

Diskutiere Problem beim Kompilieren (Redhat 5) im C/C++ Forum im Bereich Programmieren unter Linux/Unix; Hallo! Ich habe ein c-Programm unter Redhat 4 programmiert. Wenn ich es jetzt uner RH5 kompeliere, bekomme ich folgende Fehlermeldung: gcc...

  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. #2 floyd62, 11.08.2010
    floyd62

    floyd62 Routinier

    Dabei seit:
    01.05.2007
    Beiträge:
    315
    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.
     
  3. #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.
     
  4. #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.
     
  5. #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
     
  6. #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
     
  7. 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...