Я знаю, что об этом спрашивали много раз, но почему-то, попробовав все эти решения, ни одно из них не работает для меня.
Я пытаюсь создать приложение Amazon Alexa AVS SDK для использования в Visual Studio.
Я могу сгенерировать DLL, но мне нужно, чтобы они были в .LIB для компоновки.
Удалось сгенерировать файл DEF (я работаю над модулем AVSCommon), но он поврежден (фрагмент):
Dump of file libAVSCommon.dll
File Type: DLL
Section contains the following exports for libAVSCommon.dll
00000000 characteristics
5D1068DF time date stamp Mon Jun 24 14:08:31 2019
0.00 version
1 ordinal base
1276 number of functions
1276 number of names
ordinal hint RVA name
406 195 00048D40 _ZN14alexaClientSDK9avsCommon5utils6logger12ModuleLogger8setLevelENS2_5LevelE
453 1C4 000470D0 _ZN14alexaClientSDK9avsCommon5utils6logger6Logger8setLevelENS2_5LevelE
Согласно
https://gist.github.com/azadkuh/8957917, Я должен изменить файл DEF и оставить только имя функции. Так что теперь у меня есть это:
EXPORTS
_ZN14alexaClientSDK9avsCommon5utils6logger12ModuleLogger8setLevelENS2_5LevelE
_ZN14alexaClientSDK9avsCommon5utils6logger6Logger8setLevelENS2_5LevelE
Я проверил, когда это раскладывается, это выглядит так (но я не использовал это, я использовал только искаженный код выше):
alexaClientSDK::avsCommon::utils::logger::ModuleLogger::setLevel(alexaClientSDK::avsCommon::utils::logger::Level)
alexaClientSDK::avsCommon::utils::logger::Logger::setLevel(alexaClientSDK::avsCommon::utils::logger::Level)
А затем создайте библиотеку с помощью этой команды:
$> lib.exe /def:libAVSCommon.def /machine:x86 /out:libAVSCommon.lib
Однако, когда я использую сгенерированный .lib (также пробовал с .exp), он все равно выдает мне ту же ошибку:
1>ConsoleLogger.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall
alexaClientSDK::avsCommon::utils::logger::Logger::setLevel(enum alexaClientSDK::avsCommon::utils::logger::Level)"
(?setLevel@Logger@logger@utils@avsCommon@alexaClientSDK@@UAEXW4Level@2345@@Z)
Должен ли я удалить пространства имен ??
Что я делаю неправильно??
Помощь будет принята с благодарностью