• GCC编译器


    gcc编译器是很常用的编译器,有固定的命令,这里只说常用的内容。

    CMD窗口执行命令

    查看版本

    gcc --version

    输出.o文件

    -o只是指定输出文件名,不指定的话就用默认名字。

    gcc -c main.c -o main.o

     用.o文件输出静态库.a文件

    $ ar rcs libmain.a main.o

    链接生成可执行文件

    gcc main.c test.c -o main #一步生成可执行文件

    头文件所在目录

    增加头文件有两种方法,常用的是加-I来指定头文件目录。

    1. gcc main.c -I ./inc -o main
    2. #inc包含所有所需文件
    3. #inc是个路径,可以是很多个路径加起来,每个路径前面都要加-I

    编译指定头文件

    1. gcc -llib test.c
    2. #库文件名为lib

    Makefile

    生成.o文件

    1. INC = -I$(INC_DIR)
    2. OBJ_FILES_C = $(OBJ_DIR)/main.o
    3. $(OBJ_DIR)/%.o: $(SRC_DIR)/%.c
    4. $(CC) $(INC) $(OPT) -c $< -o $@

    或者这种

    1. $%.o : %.c
    2. $(CC) $< $(CFLAGS)
    3. #CFLAGS里面有-I头文件路径

     用.o文件输出静态库.a文件

    1. $(CURRENT_APPL_NAME).a: $(OBJS)
    2. $(AR) rcs $@ $(OBJS)
    3. #OBJS就是很多个.o文件

    注意事项

    1、不同的芯片或者平台、环境有自己一套独有的编译方法,所以就有针对自身的一套编译工具,不同的编译工具之间是不能混用的。别看RH850芯片里面的gcc跟MinGW32里面的gcc名字是一样的,但是里面的内容千差万别,调用到的dll库文件也不一样。

    譬如用MinGW32里面的gcc去编译RH850的源代码,就会提示下列错误。这中断的使能和使能在MinGW32完全没这概念,它一看到汇编就蒙了。

    2、同一个平台的gcc应该是可以混用的,需要在配置项里面进行配置。

    RH850的芯片就有这么个常规配置,指定cpu型号,估计换个芯片只需要在这里换上新的芯片名字就行。

    COMMONFLAGS =   -cpu=rh850g3kh

  • 相关阅读:
    docker部署frp穿透内网
    springBoot 配置拦截器
    Vuex快速入门
    Java集合(一)
    WEB安全基础 - - -Linux反弹shell
    为什么进行压力测试? 有哪些方法?
    执行linux 脚本的时候提示没有权限
    arthas-getstatics
    Tomcat的安装和配置
    《两化融合 数字化转型 价值效益参考模型》国家标准全文
  • 原文地址:https://blog.csdn.net/qiu421/article/details/134282970