Jak skompilować aplikację D bez środowiska wykonawczego D?

Iv starał się to rozgryźć na zawsze i zaczął mnie denerwować. Rozumiem bibliotekę środowiska wykonawczego D. Co to jest, co robi. Rozumiem również, że możesz skompilować aplikację D bez niej. Jak to robi XoMB. Cóż, XoMB definiuje własne środowisko wykonawcze, ale są przypadki, w których nie musisz pisać własnego, jeśli nie potrzebujesz go. Rozumiem, że kompilator DigitalMars D (dmd), którego używam, robi wiele rzeczy za sceną w czasie wykonywania, jak emisja odniesień do pewnych rzeczy w zależności od tego, co jest potrzebne programowi. A także rzeczy dla każdego programu. Więc musisz to zdefiniować sam. Zdecydowałem się poeksperymentować, samemu to rozgryźć i dość daleko. Mam przez to na myśli, że linker wypluwa coraz mniej błędów. Do testu chcę po prostu skompilować kompletną aplikację „bez kości”, aby wszystko działało bez środowiska wykonawczego. Lub jak najmniej czasu działania. oto co mam mój pojedynczy plik źródłowy.

module main;

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

Kompiluję za pomocą: dmd -c main.d -defaultlib =

Następnie link do: link main.obj

Oto błędy: OPTLINK: Ostrzeżenie 23: Bez stosu i OPTLINK: Ostrzeżenie 134: Brak adresu początkowego

Możesz zobaczyć, że próbowałem zmienić główny na _main, aby pozbyć się błędu braku adresu początkowego, ale w każdym razie nie pomógł. Co muszę zrobić, aby wyeliminować te dwa ostatnie błędy? jeśli uda mi się to uruchomić, myślę, że mogę sprawdzić, co muszę wdrożyć, aby uzyskać więcej funkcji. Ale jeśli ktoś chce mi w tym pomóc, byłby bardzo doceniony!

questionAnswers(2)

yourAnswerToTheQuestion