Как скомпилировать приложение D без среды выполнения D?

Я пытался понять это навсегда, и это начинает раздражать меня. Я понимаю библиотеку времени выполнения D. Что это такое, что оно делает. Я также понимаю, что вы можете скомпилировать приложение D без него. Как то, что делает XoMB. Что ж, XoMB определяет свою собственную среду выполнения, но есть случаи, когда вам не нужно писать свою собственную, если она вам не нужна. Я понимаю, что компилятор DigitalMars D (dmd), который я использую, делает много вещей за кулисами во время выполнения, например, создает ссылки на определенные вещи в зависимости от того, что нужно вашей программе. А также, вещи для КАЖДОЙ программы. Таким образом, вы должны определить это самостоятельно. Я решил поэкспериментировать, попытаться понять это сам и довольно далеко. Под этим я подразумеваю, чтобы компоновщик выплевывал все меньше и меньше ошибок. Для теста я просто хочу скомпилировать полное голое приложение, просто чтобы все работало без времени выполнения. Или как можно меньше времени выполнения. вот что у меня есть мой единственный исходный файл.

module main;

void _main()
{
    int a = 2 + 3;
}

Я компилирую с: dmd -c main.d -defaultlib =

Затем ссылка с: ссылка main.obj

И это ошибки, которые я получаю: OPTLINK: Предупреждение 23: Нет стека & OPTLINK: Предупреждение 134: Нет начального адреса

Вы можете видеть, что я попытался выполнить команду chaingng main to _main, чтобы избавиться от ошибки отсутствия начального адреса, но, в любом случае, это не помогло. Что мне нужно сделать, чтобы сгладить последние две ошибки? если я смогу заставить его работать, я думаю, что смогу найти то, что мне нужно реализовать, чтобы заставить работать больше функций. Но если кто-нибудь захочет помочь мне с этим, это будет высоко ценится!

Ответы на вопрос(2)

Ваш ответ на вопрос