2010-12-16 17 views
0

Ich versuche ein LabCVI Projekt in MSVS 2010 C++ Express zu portieren. Es wird eine Codezeile Wich liest sich wie folgt:Linker Fehler LNK2019 zurückverfolgt zu einem __stdcall Ich denke, ich habe die richtige lib - was kann ich tun, um dies zu lösen?

if (InitCVIRTE == 0) return 0; 

A Linker Fehler auftritt: LNK2019 "_InitCVIRTEEx @ 12" - alle relevanten Header bereits die CPP-Anweisungen verfügen:

#ifdef __cplusplus 
extern "C" { 
#endif 
... 
#ifdef __cplusplus 
} 
#endif 

ich den Fehler zurückverfolgt zurück auf diese Schnipsel, die ich für Sie kombiniert:

#define CVIFUNC __stdcall 
int CVIFUNC InitCVIRTEEx (void *hInstance, char *argv[], void *reserved); 
#define InitCVIRTE InitCVIRTEEx 

dieses Fazit:

int __stdcall InitCVIRTEEx (void *hInstance, char *argv[], void *reserved); 

Dieser Aufruf sollte in der cvirt.lib definiert werden, die zu den Bibliothekspfaden hinzugefügt wird (CVI2009 \ extlib \ msvc) Der Linker-Fehler tritt immer noch auf und ich verstehe einfach nicht warum.

Sollte die Lib auf andere Weise hinzugefügt werden? Wie kann ich überprüfen, dass dies wirklich die richtige lib ist? Bedeutet der Fehler etwas völlig anderes?

+0

Konnten Sie eine Definition von 'InitCVIRTEx' finden? –

+0

Ja, ich habe meine Spur zusammenkopiert - das ist die Aussage in der Mitte – Johannes

Antwort

2

Sie müssen dem Linker mitteilen, welche Bibliotheken verlinkt werden sollen. Der Suchpfad teilt dem Linker nur mit, wo diese Bibliotheken zu finden sind.

heißt:

Linker Libraries: 
- a.lib 
- b.lib 

Linker Search Dirs: 
C:\project_a\lib 
C:\project_b\lib 

der Linker beide Ordner für a.lib und b.lib suchen sondern verknüpfen keine Bibliotheken es etwa gesagt worden has not.

0

Ich habe es gerade gelöst - ich habe cvirt.lib und cvisupp.lib direkt zum Projekt hinzugefügt. Der Fehler ist jetzt weg ...

aber ich bin immer noch nicht zufrieden, weil ich dem Projekt bereits den Pfad gab, wo es nach Bibliotheken suchen sollte. Ich werde eine weitere Frage zu stackoverflow hinzufügen und fragen, was der Unterschied ist.