#uefi #gnu-efi #edk2
#uefi #gnu-efi #edk2
Вопрос:
Я использую gnu-efi в качестве проекта Visual Studio 2019. Моя программа UEFI работает, как и ожидалось, на реальном оборудовании. Следующим шагом мне нужны функции C, такие как «pow (…);«. Естественно, при работе с efi все эти функции отключены. Когда я напрямую включаю <math.h>, я получаю неразрешенный внешний… ошибка. Если я запускаю неограниченный проект, который успешно строится.
Я спросил об этом, и кто-то посоветовал met отключить EDK2 libc, но я не знаю, как использовать его в моем проекте или работает ли это с GNU-EFI. Я понятия не имею, что делать, чтобы использовать функции C. Я буду очень рад, если кто-нибудь скажет мне, что делать.
Комментарии:
1. Если вы используете edk2, это будет вместо gnuefi, а не в стороне. На вашем месте я бы перефразировал вопрос, потому что вы хотите использовать не функции C, а стандартные функции libc. Я не могу ответить на ваш вопрос, за исключением того, что, имхо, если вам нужно всего несколько функций, таких как pow, в вашей программе efi, вам лучше воссоздать ее самостоятельно, чем включать полную библиотеку.
2. UEFI не имеет стандартной библиотеки времени выполнения C, поэтому вы не можете использовать такие функции C, как
math.h
напрямую. Если вам нужно только простое подмножествоpow
, я думаю, лучше реализовать его самостоятельно.3. @KagurazakaKotori Да, в конце концов я так и сделал. Кто-то посоветовал мне использовать edk2-libc на странице gnu-efi github, но я не знаю, как это возможно.
Ответ №1:
Вот libc, который портирован на UEFI.