Cb编译器的安装和使用——《自制编译器》

Cb编译器的安装和使用——《自制编译器》

下载Cb编译器

安装Cb编译器

  • 将cbc-1.0.tar.gz复制到虚拟机中,并解压;

  • 如果对虚拟机有root权限,直接进入cbc文件夹下,运行脚本文件./install.sh即可;

    tar xzf cbc-1.0.tar.gz
    cd cbc-1.0
    su
    ./install.sh
    
  • 如果对虚拟机没有root权限,或者不想用root权限安装,进入cbc文件夹下后,先修改install.sh文件,将首行的prefix="${1:-/usr/local/cbc}"修改为自己可访问的目录,比如prefix="/home/IC/cbc",再运行脚本文件;

  • 运行脚本完成后,cbc已经安装在相应的文件夹下;

测试Cb编译器

  • 编写Cb程序文件 hello.cb:

    import stdio;
    
    int
    main (int argc,char **argv){
          
          
        printf("Hello, World!\n");
        return 0;
    }
    
  • 利用编译器编译程序,需要指明cbc的位置:

    /home/IC/cbc/bin/cbc hello.cb
    
  • 编译的时候会报错,报错的信息如下:(在保证程序没有错误的前提下)

    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
    
  • 解决办法,由于本人的系统是64位的,而汇编代码是32位的,参考博客:https://blog.csdn.net/jackailson/article/details/82192273?utm_source=blogxgwz6

    as hello.s -o hello.o
    gcc hello.o -o hello
    ./hello
    
  • 运行时仍然会报错,报错的信息如下:

    Segmentation fault
    
  • 应该是由于Cbc太老旧了,在新机器上不适用,不太容易解决了,坑抽空再填上吧!

猜你喜欢

转载自blog.csdn.net/weixin_41754258/article/details/112643842