У меня есть приложение EDK II и библиотека в пакете, и она прекрасно работает, когда я компилирую ее с исходными кодами библиотеки. Теперь я хочу удалить исходные коды библиотеки и связать эту библиотеку с приложением через файл .lib.
Я удаляю ссылки на исходные коды библиотеки из своего проекта приложения, и теперь я получаю это сообщение во время создания этого приложения:
DemoApp.lib(DemoApp.obj) : error LNK2001: unresolved external symbol TestFunction
fatal error LNK1120: 1 unresolved externals.
Чтобы решить эту проблему, в документации DSC упоминается, что мне нужно добавить экземпляр библиотеки в make-файл, как показано ниже:
LIBS = $(LIBS) $(LIB_DIR)/$(LibInstanceName)
Проблема в том, как я могу добавить эту запись в систему сборки make file / EDK II?
Я использую VS2008 в качестве моей цепочки инструментов.
Наконец я сделал это, добавив [BuildOptions]
запись в приложении INF.
В этом разделе я добавляю параметры в Microsoft Linker, чтобы получить файл .lib из пути к библиотеке:
MSFT:DEBUG_VS2008x86_X64_SLINK_FLAGS = /LIBPATH:"C:\TestApp\DEBUG_VS2008x86\X64\TestAppPkg\Library\TestLib\TestLib\OUTPUT" "TestLib.lib"