joey kerr
Estoy tratando de cumplir con un código de ejemplo del sistema operativo y cuando ejecuto make (al ejecutar el entorno Debian predeterminado en un Chromebook Lunix termial) me da el siguiente error:
kuzai_longmane@penguin:/mnt/chromeos/removable/32GB/Operating systems (source code)/my_cool_os/my_cool_os$ make
gcc -m32 -nostdlib -nodefaultlibs -lgcc start.o libc/string/memcmp.o libc/string/memset.o libc/string/strcat.o libc/string/strchr.o libc/string/strcmp.o libc/string/strcpy.o libc/string/strlen.o libc/string/strncmp.o libc/string/strstr.o libc/string/strutil.o libc/string/ctos.o kernel/tty.o kernel/io.o kernel.o -T linker.ld -o myos
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/10/libgcc.a when searching for -lgcc
/usr/bin/ld: cannot find -lgcc
collect2: error: ld returned 1 exit status
make: *** [Makefile:28: myos] Error 1
alguna sugerencia o cosas que pase por alto?
Está intentando generar y vincular código de 32 bits (el -m32
opción), pero el enlazador no puede encontrar una versión de 32 bits de libgcc. El mensaje dice que es es encontrar una versión de 64 bits, por lo que el problema probablemente sea solo que no tiene libs de 32 bits instaladas. Creo que en Debian, necesitas instalar el paquete ia32-libs para eso.
-
¿Como podría hacerlo? ¿Es como un ¨apt-get” o un repositorio git?
–Joey Kerr
3 de febrero a las 21:24
-
Si está utilizando apt como su administrador de paquetes, sí, simplemente use apt-get. Si está utilizando un administrador de paquetes diferente, lo usaría.
– Chris Dodd
4 de febrero a las 7:28
-m32 indica que se genere código para 32 bits, pero NO se encontró libgcc32. Es poco inusual vincular explícitamente con libgcc.
– ulix
2 feb a las 17:33