c文件中使用编译环境变量

本文介绍了如何在Linux内核和Autoconf工程中利用环境变量影响C代码的编译。在Linux内核中,.config文件中的变量会被自动写入autoconf.h,而在Autoconf工程中,通过AC_ARG_ENABLE和AC_DEFINE可以在configure.ac中设置变量,并最终写入config.h。此外,在Android源代码中,通过LOCAL_CFLAGS和环境变量可以控制编译时的条件定义。


==============linux内核中================================
.config中定义的变量自动写到include/generated/autoconf.h
这样.config中的变量就能在c文件中使用了
例如:
.config:   CONFIG_SLHC=y
include/generated/autoconf.h: #define CONFIG_SLHC 1


==============autoconfig automake工程中================================
在configure.ac的AC_INIT和AC_OUTPUT之间添加:

myval=no
AC_ARG_ENABLE(
fd650,
[AC_HELP_STRING([--enable-fd650],[Define to 1 if you are using fd650])],
[],
[]
)
myval=$enableval
echo "myval====================$myval"
AS_IF(
[ test "$enableval" == "yes" ],
[AC_DEFINE(FD650,1,[Use fd650]) ]
)

configure.ac中的变量自动写到了config.h
这样config.h中的变量就能在在c文件中使用了

例如:
使用上述configure.ac,运行configure --enable-fd650=yes
在config.h中:#define FD650 1


==============android源代码中================================
在Android.mk中使用LOCAL_CFLAGS := -Dabc
在Andro

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值