测试GCC和make是否正常工作

        我下一周的主要工作就是要让CDC在Linux-x86平台上跑起来,《论语·魏灵公》:“工欲善其事,必先利其器。“,所以,我首先要测试以下我的编译环境是否建好。首先创建几个文件:

defs.h:
###################################################################################
#ifndef BOLIDA_DEFS_H
#define BOLIDA_DEFS_H

#define DEFS_NAME "defs"

#endif
###################################################################################

command.h:
###################################################################################
#ifndef BOLIDA_COMMAND_H
#define BOLIDA_COMMAND_H

#define COMMAND_NANE "command"

#endif
###################################################################################

buffer.h:
###################################################################################
#ifndef BOLIDA_BUFFER_H
#define BOLIDA_BUFFER_H

#define BUFFER_NAME "buffer"

#endif
###################################################################################

main.c:
###################################################################################
#include "defs.h"
#include "stdio.h"

int main()
{     
     printf("%s/n","main begin!");
    printf("main print: %s/n","main");   
    printf("reference defs: %s/n", DEFS_NAME);
    printf("%s/n","main end!");
    return 0;
}
###################################################################################

utils.c:
###################################################################################
#include "defs.h"
#include "stdio.h"

void utils_print()
{     
      printf("%s/n","utils begin!");
    printf("utils print: %s/n","utils");   
    printf("reference defs: %s/n", DEFS_NAME);
    printf("%s/n","utils end!");
}
###################################################################################

command.c:
###################################################################################
#include "defs.h"
#include "command.h"
#include "stdio.h"

void command_print()
{     
    printf("%s/n","command begin!");
    printf("command print: %s/n","command");   
    printf("reference defs: %s/n", DEFS_NAME);
    printf("reference command: %s/n", COMMAND_NANE);
    printf("%s/n","command end!");
}
###################################################################################

display.c:
###################################################################################
#include "defs.h"
#include "buffer.h"
#include "stdio.h"

void display_print()
{     
      printf("%s/n","display begin!");
    printf("display print: %s/n","display");   
    printf("reference defs: %s/n", DEFS_NAME);
    printf("reference buffer: %s/n", BUFFER_NAME);
    printf("%s/n","display end!");
}
###################################################################################

files.c:
###################################################################################
#include "defs.h"
#include "buffer.h"
#include "command.h"
#include "stdio.h"

void files_print()
{      
      printf("%s/n","files begin!");
    printf("files print: %s/n","files");    
    printf("reference defs: %s/n", DEFS_NAME);
    printf("reference buffer: %s/n", BUFFER_NAME);
    printf("reference command: %s/n", COMMAND_NANE);
    printf("%s/n","files end!");
}
###################################################################################

insert.c:
###################################################################################
#include "defs.h"
#include "buffer.h"
#include "stdio.h"

void insert_print()
{     
      printf("%s/n","insert begin!");
    printf("insert print: %s/n","insert");   
    printf("reference defs: %s/n", DEFS_NAME);
    printf("reference buffer: %s/n", BUFFER_NAME);
    printf("%s/n","insert end!");
}
###################################################################################

kbd.c:
###################################################################################
#include "defs.h"
#include "command.h"
#include "stdio.h"

void kbd_print()
{     
    printf("%s/n","kbd begin!");
    printf("kbd print: %s/n","kbd");   
    printf("reference defs: %s/n", DEFS_NAME);
    printf("reference command: %s/n", COMMAND_NANE);
    printf("%s/n","kbd end!");
}
###################################################################################

search.c:
###################################################################################
#include "defs.h"
#include "buffer.h"
#include "stdio.h"

void search_print()
{     
      printf("%s/n","search begin!");
    printf("search print: %s/n","search");   
    printf("reference defs: %s/n", DEFS_NAME);
    printf("reference buffer: %s/n", BUFFER_NAME);
    printf("%s/n","search end!");
}
###################################################################################

GNUmakefile:
###################################################################################
#Set var

CC = gcc
LD = ld

OBJS = main.o kbd.o command.o display.o insert.o search.o files.o utils.o

#get final target
#----------------------

mytestmake : $(OBJS)
    @echo "begin!"
    $(CC) -o mytestmake $(OBJS)
   
#----------------------

#get obj
#----------------------

main.o : main.c defs.h
    $(CC) -c main.c

kbd.o : kbd.c defs.h command.h
    $(CC) -c kbd.c
   
command.o : command.c defs.h command.h
    $(CC) -c command.c   
   
display.o : display.c defs.h buffer.h
    $(CC) -c display.c
   
insert.o : insert.c defs.h buffer.h
    $(CC) -c insert.c
   
search.o : search.c defs.h buffer.h
    $(CC) -c search.c       
   
files.o : files.c defs.h buffer.h command.h
    $(CC) -c files.c   
   
utils.o : utils.c defs.h
    $(CC) -c utils.c           
   
#-----------------------

#clean
#-----------------------

.PHONY : clean
clean :
    -rm mytestmake ./$(OBJS)

###################################################################################

将这12个文件放在同一个目录下,然后cd到这个目录下,输入make命令,可以看见编译没有问题,再执./mytestmake 可以看见main函数中的输出可以正确显示!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值