免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 961 | 回复: 0
打印 上一主题 下一主题

[12.8]看makefile 看到INC( -I -D flag) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-12-08 11:48 |只看该作者 |倒序浏览

               
在makefile中有
INC =  -I$(COMPTOP)/inc/ -I$(COMPTOP)/lib/Driver/arch/Tavor  -g -DDIAG_APPS -DDIAG_OVER_MSL -DDIAG_OVER_MSL_APPS \
    -DENV_LINUX -DOSA_LINUX -DOSA_QUEUE_NAMES -DUSE_OSA_SEMA -D_FDI_USE_OSA_
CFLAGS += $(INC) -mabi=aapcs-linux
$(BUILDTOP_ENG)/%.o :$(ENGINE_SRC)/%.c
    $(CC) $(CFLAGS) -o $@ -c $^
看不懂INC是做什么的,还有几个-D开头的东西。
下面找到的一点资料,能解释一下:
3.库文件和头文件    在程序中,使用#include stdio.h>类似的头文件stdio.h在编译器的头文件路径中,#include "abc.h"中的stdio.h文件则应该在当前目录。通过对编译器指定参数-IPATH>来指定头文件所在目录,可以用 #include >来引用。例如:gcc -I./include hello.c,将从当前目录下的include目录下去寻找头文件。    同理,程序中调用的库函数在编译时也需要指定路径,同时指定库。使用-LPATH>参数指定库文件的目录,-lFILE>指定包含的库文件。例如,要使用libXXX.so库,参数为-lXXX。    一般一个库编译完成后有库文件和头文件。如果要使用这个库,可以将库文件目录和头文件目录分别用-I和-L参数指定,也可以将他们拷贝到编译器的include和lib目录下。
----------[color="#02368d"]GCC——C程序是如何编译成的
2

[color="#000066"]gcc -D:gcc的预定义功能
gcc编译的时候提供了预定义功能,参数是-D,  通过man gcc可以了解更多:
-D
name
           Predefine name as a macro, with definition 1.
      
-D name=definition
           Predefine name as a macro, with definition
definition.  The contents of definition are tokenized and processed as if they
appeared during translation phase three in a #define directive.  In particular,
the definition will be truncated by embedded new-line
characters.
可以通过以下例子解释一下:
int main()
{
    #ifdef HELLO
   
printf("HELLO defined\n");
    #else
    printf("HELLO not
define\n");
    #endif
    return
0;
}
在该程序中,判断是否已经定义了宏DEBUG,从而输出相应的语句。
如果编译该程序时采用了gcc -DHELLO, 则输出:HELLO
defined
               
               
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/63775/showart_1685651.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP