Я пытаюсь создать библиотеку-оболочку с помощью компилятора VC++.
ErlDriver.c
#define __WIN32__
#define DLL_EXPORT __declspec(dllexport)
#include "erl_driver.h"
DLL_EXPORT int _driver_output(ErlDrvPort port, char *buf, int len) {
return driver_output(port, buf, len);
}
build.bat
cl /I%ERL_DRIVER_H% /LD /MD ErlDriver.c
Когда я пытаюсь создать это, я получаю следующую ошибку компоновщика:
ErlDriver.obj: ошибка LNK2019: неразрешенный внешний символ _WinDynDriverCallbacks, указанный в функции __driver_output
erl_win_dyn_driver.h (включен в erl_driver.h)
typedef struct {
WDD_FTYPE(driver_output) *driver_output;
// a ton more of those
} TWinDynDriverCallbacks;
extern TWinDynDriverCallbacks WinDynDriverCallbacks;
#define driver_output (WinDynDriverCallbacks.driver_output)
Итак, как видите, WinDynDriverCallbacks объявлен defined.
Что же тогда может быть причиной ошибки компоновщика?