errormeldung: undefined reference to `_SCardEstablishContext@16

Gradrag

Grünschnabel
Guten Tag ,
Situationsbeschreibung:
Muss Chipkarte auslesen
(mit hilfe von "winscard.h")

Problem:
einbinden hat nach mehrfachenversuch dann geklappt, aber nun kommt beim Aufruf der Funktion SCardEstablishContext die Errormeldung: (Zweite Teil ist glaub am Wichtigsten')

"/usr/bin/make" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf
make[1]: Entering directory `/cygdrive/c/Users/mija/Documents/NetBeansProjects/Aufruf_der_SCardestablish'
"/usr/bin/make" -f nbproject/Makefile-Debug.mk dist/Debug/Cygwin-Windows/aufruf_der_scardestablish.exe
make[2]: Entering directory `/cygdrive/c/Users/mija/Documents/NetBeansProjects/Aufruf_der_SCardestablish'
mkdir -p build/Debug/Cygwin-Windows
rm -f build/Debug/Cygwin-Windows/main.o.d
gcc.exe -c -g -MMD -MP -MF build/Debug/Cygwin-Windows/main.o.d -o build/Debug/Cygwin-Windows/main.o main.c
In Datei, eingefügt von winscard.h:32,
von main.c:11:
winsmcrd.h:41:1: Warnung: "FILE_DEVICE_SMARTCARD" redefined
In Datei, eingefügt von winscard.h:31,
von main.c:11:
/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winioctl.h:149:1: Warnung: this is the location of the previous definition
----------------------------------------------------------------------
mkdir -p dist/Debug/Cygwin-Windows
gcc.exe -o dist/Debug/Cygwin-Windows/aufruf_der_scardestablish build/Debug/Cygwin-Windows/main.o
build/Debug/Cygwin-Windows/main.o: In function `main':
/cygdrive/c/Users/mija/Documents/NetBeansProjects/Aufruf_der_SCardestablish/main.c:32: undefined reference to `_SCardEstablishContext@16'
collect2: ld gab 1 als Ende-Status zurück
make[2]: *** [dist/Debug/Cygwin-Windows/aufruf_der_scardestablish.exe] Fehler 1
make[1]: *** [.build-conf] Fehler 2
make[2]: Leaving directory `/cygdrive/c/Users/mija/Documents/NetBeansProjects/Aufruf_der_SCardestablish'
make[1]: Leaving directory `/cygdrive/c/Users/mija/Documents/NetBeansProjects/Aufruf_der_SCardestablish'
make: *** [.build-impl] Fehler 2

BUILD FAILED (exit value 2, total time: 2s)

ich denk mal der letze Abschnitt ist der wichtigste.


mein Quelltest:


PHP:
#include <stdio.h>
#include <stdlib.h>
#include "addieren.h"
#include "winscard.h"




/*
 * 
 */
int main(int argc, char** argv) {
 

  SCARDCONTEXT   ContextHandle; 

  LONG      rv; 
 
   rv = SCardEstablishContext(SCARD_SCOPE_SYSTEM, NULL, NULL, &ContextHandle);


    return (EXIT_SUCCESS);
}

Weis irgendjemand was ich da falsch gemacht habe?
schonmal vielen Dank für die Mithilfe und den Bemühungen.

Mit freundlichen Grüßen
 
Hi,

so "undefined reference" Meldungen kommen normalerweise, wenn du vergisst, eine Bibliothek zu dem Projekt hinzu zu linken. Die .h Datei gibt ja die Signatur einer Funktion an, die sich in einer Bilbiothek (.dll oder .lib unter Windows) befindet. Diese muss der Compiler natürlich auch haben, sonst geht da nichts.

Für die winscard.h ist dies (laut MSDN, Quelle) die "winscard.lib". Füge diese mal in deiner IDE zum Projekt / zum Compileraufruf hinzu, dann sollte es gehen :)

Gruß
BK
 
Ähm .. sorry für die unwissende Nachfrage : aber NetBeans als IDE für C ? Geht das überhaupt ? Ich dachte das NetBeans ausschließlich für Java gedacht ist ? *Da von Sun und selbst in Java geschrieben.*
 
Hi,

@SPiKE: Hab ich auch noch nicht gehört / gewusst, dass man da auch C machen kann ;) Aber was nicht passt, wird passend gemacht, anscheinend war die Nachfrage für dieses "Feature" vorhanden :)

@Gradrag: Per Google hab ich rausgefunden, dass du die Einstellunge hierfür unter "Linker | General | Additional Libraries" findest. Wie das auf Deutsch heißt, kann ich dir nicht sagen, hab die Netbeans IDE nicht zur Hand.

Gruß
BK
 
Vielen Dank; mitlerweile hab ich das soweit auch gemacht aber der Fehler kommt immernoch ,leider..
Entweder hab was Falsches eingebunden oder es liegt an was anderen.

Hab mein Rechner durchsucht die WinSCard.lib exestiert komischerweise nicht, nur winscardn.lib dafür aber winscard.dll. Also denk ich mal das ich was Falsches eingebunden hab
 
Ich bedank Mich nochmals recht herzlich, den fehler hab ich jetz mitlerweile "glaub ich" gefunden.
beim einbinden der Lib war unten noch das auswahlmenü welche "Datein" angezeigt werden können ... ja das war auf Lib gestellt ( eigentlich auch logisch aber irgendwie konnt ich keine Libs sehen, erst alsich es auf "Alle Datein gestelt " habe hat er mir alle lib-Datein angezeigt.
Hoffe es klappt jetz mit weniger Komplikationen

Vielen dank dir Bratkartoffel

Mit freundlichen grüßen Gradrag
(sicher lesen wir uns bald wieder wenn ich nicht weiter komme :D)
 
Zurück