Instalación y uso del compilador de Cb: "compilador de fabricación propia"
Directorio de artículos
Descarga el compilador de Cb
- Sitio web: http://www.ituring.com.cn/book/1308 , haga clic en la descarga con el libro a la derecha para descargar cbc-1.0.tar.gz
Instalar el compilador de Cb
-
Copie cbc-1.0.tar.gz en la máquina virtual y descomprímalo;
-
Si tiene privilegios de root en la máquina virtual, vaya directamente a la carpeta cbc y ejecute el archivo de secuencia de comandos ./install.sh;
tar xzf cbc-1.0.tar.gz cd cbc-1.0 su ./install.sh
-
Si no tiene privilegios de root en la máquina virtual, o no desea instalar con privilegios de root, después de ingresar a la carpeta cbc, modifique primero el archivo install.sh y
prefix="${1:-/usr/local/cbc}"
modifique la primera línea a un directorio al que pueda acceder, por ejemploprefix="/home/IC/cbc"
, ejecute el archivo de secuencia de comandos; -
Después de ejecutar el script, cbc se ha instalado en la carpeta correspondiente;
Prueba el compilador de Cb
-
Escriba el archivo de programa Cb hello.cb:
import stdio; int main (int argc,char **argv){ printf("Hello, World!\n"); return 0; }
-
Para usar un compilador para compilar un programa, debe especificar la ubicación de cbc:
/home/IC/cbc/bin/cbc hello.cb
-
Al compilarInformar un error, El mensaje de error es el siguiente: (bajo la premisa de asegurar que el programa no tenga errores)
hello.s: Assembler messages: hello.s:9: Error: suffix or operands invalid for `push' hello.s:12: Error: suffix or operands invalid for `push' hello.s:19: Error: suffix or operands invalid for `pop' cbc: error: as failed. (status 1) cbc: error: compile error
-
La solución , debido a que mi sistema es de 64 bits y el código de ensamblaje es de 32 bits, consulte el blog: https://blog.csdn.net/jackailson/article/details/82192273?utm_source=blogxgwz6
as hello.s -o hello.o gcc hello.o -o hello ./hello
-
Sigue corriendoInformar un error, El mensaje de error es el siguiente:
Segmentation fault
-
Debería ser porque Cbc es demasiado antiguo y no es aplicable en la nueva máquina. No es fácil de resolver. ¡Por favor, tómese el tiempo para llenar el agujero!