Undefined reference to ´[function]'

Alles was mit C/C++ unter NetBeans zu tun hat

Moderator: wegus

Antworten
xp10r3r
Beiträge: 8
Registriert: 08.07.2018, 16:10

Undefined reference to ´[function]'

Beitrag von xp10r3r » 15.04.2019, 11:31

#Edit:
Ich habe leider Probleme alle Anhänge hochzuladen. Daher hier die wichtigsten Infos zu den Tools.

C Compiler: P:\PortableApps\MinGW\bin\gcc.exe
Make: P:\PortableApps\MinGW\msys\1.0\bin\make.exe
Debugger: P:\PortableApps\MinGW\bin\gdb.exe

Moin,

ich versuche mich gerade an der modularen C-Programmerstellung und habe als Beispiel eine triviale Artikeldatenbank. Die Artikeldatenbank wird als ADT-Strukturvektor realisiert.

Insgesamt gibt es folgende Dateien:
  • B13-03_MAIN.h
  • B13-03_MAIN.c
  • B13-03_F1.h
  • B13-03_F1.c
Kompiliere ich die Dateien einzeln, funktioniert dies ohne Fehler. Baue ich dann das Projekt, passiert folgendes:

Code: Alles auswählen

cd 'D:\Master\M_32561\9000_A\B13-03'
P:\PortableApps\MinGW\msys\1.0\bin\make.exe -f Makefile CONF=Debug
"/P/PortableApps/MinGW/msys/1.0/bin/make.exe" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf
make.exe[1]: Entering directory `/d/Master/M_32561/9000_A/B13-03'
"/P/PortableApps/MinGW/msys/1.0/bin/make.exe"  -f nbproject/Makefile-Debug.mk dist/Debug/MinGW-Windows/b13-03.exe
make.exe[2]: Entering directory `/d/Master/M_32561/9000_A/B13-03'
mkdir -p dist/Debug/MinGW-Windows
gcc     -o dist/Debug/MinGW-Windows/b13-03 build/Debug/MinGW-Windows/B13-03_F1.o build/Debug/MinGW-Windows/B13-03_MAIN.o 
build/Debug/MinGW-Windows/B13-03_F1.o: In function `anzeigen_artikelbestand':
D:\Master\M_32561\9000_A\B13-03/B13-03_F1.c:283: undefined reference to `ausgeben_artikelbestand_mit_listenkopf'
build/Debug/MinGW-Windows/B13-03_MAIN.o: In function `main':
D:\Master\M_32561\9000_A\B13-03/B13-03_MAIN.c:39: undefined reference to `erfassen_artikel'
D:\Master\M_32561\9000_A\B13-03/B13-03_MAIN.c:42: undefined reference to `anzeigen_artikel'
D:\Master\M_32561\9000_A\B13-03/B13-03_MAIN.c:45: undefined reference to `aendern_artikel'
D:\Master\M_32561\9000_A\B13-03/B13-03_MAIN.c:48: undefined reference to `loeschen_artikel'
collect2.exe: error: ld returned 1 exit status
make.exe[2]: *** [dist/Debug/MinGW-Windows/b13-03.exe] Error 1
make.exe[2]: Leaving directory `/d/Master/M_32561/9000_A/B13-03'
make.exe[1]: *** [.build-conf] Error 2
make.exe[1]: Leaving directory `/d/Master/M_32561/9000_A/B13-03'
make.exe": *** [.build-impl] Error 2
Ich habe zu der Fehlermeldung recherchiert und jedes Mal unterschiedliche Lösungsansätze gefunden. Dies reicht z. B. über die Einbindung aller Dateien in die configuration.xml in die Path-Tag oder die Erstellung des Projekts als ein Mix aus C und C++ Dateien. Die configuration.xml habe ich geprüft und selbige scheint für mich in Ordnung. Das Projekt habe ich komplett neu als C Application Projekt erstellt. Auch die Einbindung von extern C habe ich vorgenommen, wobei ich bis jetzt nicht weiß, was das bedeutet.

Sobald ich das Projekt erneut erstelle, kommt der selbe Fehler. Ich habe kürzlich die Plugins aktualisiert und dieses Projekt ist das erste mit neuen Plugins. Aber selbst das vorherige Projekt mit alten Plugins läuft neu erstellt sauber durch.

Anbei noch ein paar Screenshots zu den installierten Plugins, Tolls etc..

Vielen Dank für einen hilfreichen Hinweis.
Dateianhänge
B13-03.zip
(5.96 KiB) 3-mal heruntergeladen
Plugins.png
Plugins.png (25.81 KiB) 64 mal betrachtet
Netbeans.png
Netbeans.png (149.72 KiB) 64 mal betrachtet

Benutzeravatar
nigjo
Beiträge: 621
Registriert: 08.09.2009, 09:43
Wohnort: Aachen
Kontaktdaten:

Re: Undefined reference to ´[function]'

Beitrag von nigjo » 16.04.2019, 07:45

Hi

"undefined reference to " sind Meldungen vom Linker. Er kann beim zusammenzimmern der exe (oder dll) die entsprechenden Funktionen nicht finden. Der Compiler ist vermutlich durchgelaufen.

Wo stehen denn diese Funktionen, die er da anmeckert? In deinen Quellen oder in einer externen Bibliothek. Die Funktionen in deinen Quellen sollten gefunden werden. Du solltest natürlich auf die korrekte Parameterliste achten. Sind die Funktionen in externen Bibliotheken können es ein Haufen anderer Problemursachen sein.

Jens
Man sollte seine Werkzeuge kennen. Ansonsten haut man sich mit dem Hammer nur auf die Finger.

--
NetBeans Certified Engineer - Java Getriebe

Antworten