Postępuję zgodnie z tym samouczkiem: https://littleosbook.github.io/#linking-the-kernelJak utworzyć plik wykonywalny ELF na Mac OS X?
i używam komputera Mac. Jestem w momencie, w którym mam plik obiektowy utworzony z nasm
, i chcę przekształcić go w plik wykonywalny ELF przy użyciu ld
. Model ld
na komputerze Mac nie wygląda na to, że obsługuje format ELF, ale nie chcę uruchamiać maszyny wirtualnej z Ubuntu, aby wykonać ten krok łącza.
Czy można zainstalować GNU ld
na komputerze Mac i uruchomić go razem z komputerem Mac's ld
?
Wyjmij dane wyjściowe i uruchom "plik -f" i zobacz, co mówi. Używam "clang main.s -mllvm --x86-asm-syntax = intel -o main", a to daje mi "64-bitowy plik wykonywalny Mach-O x86_64" –
Myślę, że to spowodowało błąd, ponieważ nie wiedział co zrobić z plikiem ELF: "file -f loader.o" dało mi "nie można otworzyć" ELF "(brak takiego pliku lub katalogu)" – cstack
Jeśli poważnie patrzysz na niestandardowy 32-bitowy system operacyjny na OS/X, ja ' zalecam co najmniej, że warto rozważyć utworzenie kompilatora krzyżowego. –