Linux平台Makefile文件的编写基础篇和GCC参数详解

问:gcc中的-I.是什么意思。。。。看到了有的是gcc -I. -I/usr/xxxxx..那个-I.是什么意思呢
最佳答案
答:-Ixxx 的意思是除了默认的头文件搜索路径(比如/usr/include等)外,同时还在路径xxx下搜索需要被引用的头文件。 所以你的

gcc -I. -I/usr/xxxxx 的意思是,同时还要再 . 目录(即 执行gcc的当前目录) 以及 /usr/xxxxx 目录下搜索头文件。


解释MAKEFILE    
EXEC = hello
OBJS = hello.o
CROSS= iwmmxt_le-
CC = $(CROSS)gcc
STRIP= $(CROSS)strip
CFLAGS = -Wall -g -O2
all: clean $(EXEC)
$(EXEC):$(OBJS)
$(CC) $(CFLAGS) -o $@ $(OBJS)
$(STRIP) $@
clean:
-rm -f $(EXEC) *.o

最佳答案

先说明下”all:“和”clean:“。这两个语句类似于:if (arg=="all") then.... 和 if (arg=="clean") then...
也就是说,如果你执行make all,all后面的语句就会被执行。
如果make clean,clean后面的语句就会被执行。
另外,all和clean后面的语句应该都是要缩进的。

EXEC = hello  // 生成的可执行文件名为hello
OBJS = hello.o // 编译产生的中间文件名为hello.o
CROSS= iwmmxt_le- //设置iwmmxt_Ie-为交叉编译环境
CC = $(CROSS)gcc // 编译器是gcc
STRIP= $(CROSS)strip // 设置优化器(用来删除debug信息)
CFLAGS = -Wall -g -O2 // 设置编译选项
all: clean $(EXEC) // 如果是make all,先掉用下clean后面的指令,再执行自己下面的指令
$(EXEC):$(OBJS)  // 创建依赖关系。这里表示hello依赖于hello.o。也就是说,先产生hello.o再产生hello
$(CC) $(CFLAGS) -o $@ $(OBJS)  // 编译
$(STRIP) $@ // 删除debug信息
clean: // make clean就会来这里
-rm -f $(EXEC) *.o // 删除产生的中间文件


Linux平台Makefile文件的编写基础篇

目的:
       
        基本掌握了 make 的用法,能在Linux系统上编程。
       
        环境:
       
        Linux系统,或者有一台Linux服务器,通过终端连接。一句话:有Linux编译环境。
       
        准备:
       
        准备三个文件:file1.c, file2.c, file2.h
               file1.c:
                      #include <stdio.h>
                      #include "file2.h"
                      int main()
                      {
                             printf("print file1$$$$$$$$$$$$$$$$$$$$$$$$\n");
                             File2Print();
                             return 0;
                      }

       

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值