Meine VC++ Lösung enthält zwei Projekte, eine Anwendung (exe) und eine statische Bibliothek.Wie verknüpft man eine statische Bibliothek in Visual C++ 2008?
Beide kompilieren gut, aber nicht zu verknüpfen. Ich erhalte einen "nicht aufgelösten externen Symbol" -Fehler für jede Funktion aus der statischen Lib, die ich benutze. Sie sehen wie folgt aus:
MyApplication.obj: Fehler LNK2019: nicht aufgelöstes externes Symbol "__declspec (dllimport) int __cdecl MyStaticLibrary :: akzeptieren (int, struct sockaddr *, int *)"
Die App finden ist die .lib geht es gut, das ist also nicht das Problem. Ich denke, der "dllimport" ist das Problem - warum sollte es da sein, wenn ich versuche, eine statische Bibliothek zu erstellen? Sowohl die App als auch die Bibliothek verwenden die Laufzeitbibliothek "Multi-threaded (/ MT)", nicht "Multi-threaded DLL (/ MD)".
EDIT:
Ich denke, einige der Antworten richtig sind. Die Bibliothek, die UDT genannt wird, hat dies in der Haupt-Header-Datei:
#ifdef UDT_EXPORTS
#define UDT_API __declspec(dllexport)
#else
#define UDT_API __declspec(dllimport)
#endif
Bedeutet dies, es nicht als eine statische Bibliothek verwendet wird gemeint war?
Also ist das Geheimnis, woher __declspec (dllimport) stammt - vermutlich die .h-Datei der Bibliothek, aber wie ist es da? Irgendein Makro wild gegangen? Wie geht es dir? –