Visual Studio 2012 프로젝트를 사용하여 EDK2 SDK로 UEFI 드라이버를 작성하는 방법에 대한 조언을 찾고 있습니다. 나는 정적으로 UefiLib.lib를 링크하려고 시도하지만 비참하게 실패합니다. 링커 아래에 추가 종속성에 lib를 추가했습니다.Visual Studio를 사용하여 UEFI 드라이버 빌드
#include <Uefi.h>
#include <Library/UefiLib.h>
EFI_STATUS
EFIAPI
UefiMain (
IN EFI_HANDLE ImageHandle,
IN EFI_SYSTEM_TABLE *SystemTable
)
{
Print((CHAR16 *)L"Welcome to the world of EDK II.\n");
return EFI_SUCCESS;
}
오류 그러나 그렇지 수출 또는 수입으로하지만, archivemember로 존재, 지금은 인쇄 lib 디렉토리에 있는지 확인하기 위해 DUMPBIN을 사용했습니다
test.obj : error LNK2001: unresolved external symbol "unsigned __int64 __cdecl Print(unsigned short const *,...)" ([email protected]@YA_KPEBGZZ)
입니다. 나는 그것이 문제인지 여부를 확신하지 못한다.
"UEFI 드라이버 나 응용 프로그램을 별도로 만들 수는 없으므로 EDK2 소스 트리에서 완료해야합니다"- 사실이 아닙니다. Visual Studio 2015 (EDK2없이)를 사용하여 UEFI File System 드라이버를 구축하고 있습니다 (https://github.com/pbatard/efifs). 필요한 것은 하위 모듈로서 gnu-efi뿐입니다. – Akeo
질문은 특히 EDK2 SDK 및 VS2012가있는 UEFI 드라이버에 관한 것이므로 그 맥락에서 대답했습니다. 문구를 문맥 밖으로 가져 가면 확실합니다. 그래도 EDK2 트리에서 가져온 헤더가있는 환경이 필요합니다. gnu-efi를 사용하면 이처럼 사용자 지정 트리에서 EFI 구성 요소를 직접 만들었습니다. BTW, EfiFs 드라이버는 EDK2 구성 요소 (예 : INF 파일이 아님)처럼 보이지 않으며 질문의 UefiLib.lib와 같은 EDK2 라이브러리와 연결되지 않으며 EDK2 빌드 도구도 사용하지 않습니다. – sun2sirius
아, 내 잘못이야. 나는 OP가 EDK2를 사용하지 않고도 VS를 사용하여 EFI 드라이버를 만들려고 노력 중이며 그렇게하는 데 문제가 있다고 생각했습니다. – Akeo