Как связать статическую библиотеку в Visual C ++ 2008?
Мое решение VC ++ включает в себя два проекта, приложение (exe) и статическую библиотеку.
Оба компилируются нормально, но не могут связать. Я получаю ошибку «неразрешенный внешний символ» для каждой функции из используемой статической библиотеки. Они выглядят так:
MyApplication.obj: ошибка LNK2019: неразрешенный внешний символ «__declspec (dllimport) int __cdecl MyStaticLibrary :: accept (int, struct sockaddr *, int *)»
Приложение находит .lib просто отлично, так что это не проблема. Я думаю, что проблема заключается в «dllimport» - почему это происходит, когда я пытаюсь создать статическую библиотеку? И приложение, и библиотека используют библиотеку времени выполнения "Многопоточная (/ MT)", а не "Многопоточная DLL (/ MD)".
РЕДАКТИРОВАТЬ:
Я думаю, что некоторые ответы верны. Библиотека, которая называется UDT, имеет это в главном заголовочном файле:
#ifdef UDT_EXPORTS
#define UDT_API __declspec(dllexport)
#else
#define UDT_API __declspec(dllimport)
#endif
Означает ли это, что он не предназначен для использования в качестве статической библиотеки?