首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
makefile中的宏定义为字符串
2024-09-05
Makefile当中宏定义传递字符串
前几天遇到类似的问题[http://bbs.chinaunix.net/thread-1589386-1-1.html]: 在Makefile里面定义一个字符串在程序里面使用, CFLAGS += -DMY_PATH=/etc/mycfgCFLAGS += -DMY_PATH="/etc/mycfg"上面两种写法都不行. 正确的写法如下: CFLAGS += -DMY_PATH=\"/etc/mycfg\"
Makefile中进行宏定义-***
实际上是gcc命令支持-D宏定义,相当于C中的全局#define: gcc -D name gcc -D name=definition Makefile中可以定义变量(和宏很像),但是是给make解释器用的,对所编译的文件完全没有作用. MSTAR:宏定义方式:字串定义方式和值定义方式 CC_TVOPTS += -DMS_BOARD_TYPE_SEL=$(BOARD_TYPE_SEL) CC_TVOPTS += -DMS_SW_CUS_SEL=SW_CONFIG_TRUNK_ATVMM C
Makefile中用宏定义进行条件编译(gcc -D)/在Makefile中进行宏定义-D【转】
本文转载自:http://blog.csdn.net/maopig/article/details/7230311 在源代码里面如果这样是定义的:#ifdef MACRONAME//可选代码#endif 那在makefile里面gcc -D MACRONAME=MACRODEF或者gcc -D MACRONAME 这样就定义了预处理宏,编译的时候可选代码就会被编译进去了. 对于GCC编译器,有如下选项: -D macro=string,等价于在头文件中定义:#d
Makefile ------ 在Makefile中进行宏定义-D
在Makefile中我们可以通过宏定义来控制源程序的编译.只要在Makefile中的CFLAGS(变量名随意)中通过选项-D来指定你于定义的宏即可. 如:CFLAGS += -D _YUQIANG在编译的时候加上此选项就可以了: $(CC) $(CFLAGS) $^ -o $@ 例如: Makefile文件内容为: CC = gcc RM = rm CFLAGS += -D _YUQIANG TARGETS := myapp all:$(TARGETS) $(TARGETS):main.c $(
[C++] C++中的宏定义详解
转载自:C++中的宏定义 和 C++宏定义详解 一.#define解析 #define是C语言中提供的宏定义命令,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率,但学生在学习时往往不能 理解该命令的本质,总是在此处产生一些困惑,在编程时误用该命令,使得程序的运行与预期的目的不一致,或者在读别人写的程序时,把运行结果理解错误,这对 C语言的学习很不利. 1 #define命令剖析 1.1 #define的概念 #define命令是C语言中的一个宏
iOS 静态库中使用宏定义区分iPhone模拟器与真机---备用
问题描述 一般项目中,可以使用宏定义来判断模拟器还是真机,这无疑是有效的. #if TARGET_IPHONE_SIMULATOR #define SIMULATOR 1 #elif TARGET_OS_IPHONE #define SIMULATOR 0 #endif 但是宏是预编译时发生作用的,那么在静态库中是否还能够使用宏定义来区分模拟器与真机? 分析思路 宏定义确实是预编译时发生作用的,但是静态库编译出来的.a文件通常是分为模拟器与真机两个的,及时通过lipo合并为fat.a文件,实际运
C++中的内联函数和C中的宏定义的区别
在C++中内联函数: 内联函数即是在函数的声明和和定义前面加上“inline”关键字,内联函数和常规函数一样,都是按照值来传递参数的,如果参数为表达式,如4.5+7.5,则函数将传递表达式的值(这里为12),而宏定义则不同. 在C中的宏定义: C语言使用的预处理器语句#define来提供宏,例如:#define SQUARE(X) X*X,这里宏并不是通过值传递来实现的,而是通过文本替换来实现的. 内联函数和宏定义的区别用下面的代码来观察: //内联函数 inline double squar
C语言学习笔记--C语言中的宏定义
1. C 语言中的宏定义 (1)#define 是预处理器处理的单元实体之一(因此,预处理器只是简单的进行替换,并不(2)#define 定义的宏可以出现在程序的任意位置(包括函数体的内部)(3)#define 定义之后的代码都可以使用这个宏 2. 定义宏常量 (1)#define 定义的宏常量可以直接使用(2)#define 定义的宏常量本质为字面量 3. 宏定义表达式 (1)#define 表达式的使用类似函数调用(2)#define 表达式可以比函数更强大(3)#define 表达式比函数
内核中的宏定义__init、__initdata和__exit、__exitdata
__init.__initdata和__exit.__exitdata的定义位于<kernel/include/linux/init.h> /* These are for everybody (although not all archs will actually discard it in modules) */ #define __init __section(.init.text) __cold notrace #define __initdata __section(.init.d
20个C语言中常用宏定义总结
01: 防止一个头文件被重复包含 #ifndef COMDEF_H#define COMDEF_H//头文件内容#endif 02: 重新定义一些类型防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植. typedef unsigned char boolean; /* Boolean value type. */typedef unsigned long int uint32; /* Unsigned 32 bit value */typedef
C语言中的宏定义
目录(?)[-] 简单宏定义 带参数的宏 运算符 运算符 宏的通用属性 宏定义中圆括号 创建较长的宏 较长的宏中的逗号运算符 宏定义中的do-while循环do 空操作的定义 预定义宏 C语言中常用的宏 1. 简单宏定义 简单的宏定义有如下格式: [#define指令(简单的宏)] #define 标识符 替换列表 替换列表是一系列的C语言记号,包括标识符.关键字.数.字符常量.字符串字面量.运算符和标点符号.当预处理器遇到一个宏定义时,会做一个 “标识符”代表“替换列表”的记录.在文件后面的
[PHP] PHP源码常用代码中的宏定义
PHP源码常用代码宏定义:#define 宏名 字符串#表示这是一条预处理命令,所有的预处理命令都以#开头.define是预处理命令.宏名是标识符的一种,命名规则和标识符相同.字符串可以是常数.表达式等.在编译预处理时,对程序中所有出现的"宏名",都用宏定义中的字符串去代换,这称为"宏代换"或"宏展开". 1.#define PHP_FUNCTION ZEND_FUNCTION在编译预处理阶段会把PHP_FUNCTION 替换成 ZEND_FUN
Linux中THIS_MODULE宏定义详解
一直都在耿耿于怀,这个THIS_MODULE到底是个什么玩意,linux内核中无处不在的东西.今天上网搜了一下,算是基本明白了.网上牛人写的已经比较详细,另外目前暂时没有时间往更深层次分析,所以直接贴过来得了... 转帖网址: http://blog.csdn.net/a954423389/archive/2010/12/27/6101369.aspx 源码位置: @ kernel/module.c @ include/linux/module.h 结构体struct module在内核中代表一
cocos2d-x中的宏定义CC_PROPERTY
cocos2d-x定义了很多宏定义,帮我们提高开发效率,下面看下CC_PROPERTY, CC_PROPERTY定义 CC_PROPERTY的声明在CCPlatformMacros.h中,结构如下 #define CC_PROPERTY ( varType, varName, funName ) varType : 变量类型. varName :变量名称 funName : "get + funName"是变量的getter. "set + funName"是变量的
c++中利用宏定义简化for循环使用
话不多说,上方法 #define _for(i,a,b) for( int i=(a); i<(b); ++i) #define _rep(i,a,b) for( int i=(a); i<=(b); ++i) 这种简洁的宏定义将极大的简化for在实例中的使用 _for(i, , ) { printf("%d", i); } for 看起来更加简洁,而且其他使用方法跟一般的for很像.
Erlang中的宏定义应该在什么时候用
读<Erlang OTP并发编程实战>中看到这么一句话,遂做笔记以记录: 宏不是函数的替代品,当你所需的抽象无法用普通函数来实现时,宏给出了一条生路,比如,必须确保在编译期展开某些代码的时候,或是在语法不允许执行函数调用的时候. 对于后者做了测试如下: -module(test). -export([test/2]). test(X, Y) -> if maxxx(X, Y) -> X; true -> Y end. maxxx(X, Y) -> X > Y. 此
OC中的宏定义
我们都知道,宏定义是编译期常量.而OC是一种动态语言. 1.iOS系统版本判断的两个宏定义 __IPHONE_OS_VERSION_MAX_ALLOWED // iOS系统版本最大允许 __IPHONE_OS_VERSION_MIN_REQUIRED // iOS系统版本最小需要 使用这俩宏,仅仅能消除编译器的警告而已.因为OC是动态语言,所以系统版本还需要判断.例如: 2.断言 /** @brief 适用:Objective-C的方法 @param condition 条件. @param d
Excel—在Excel中利用宏定义实现MD5对字符串(如:手机号)或者文件加密
下载宏文件[md5宏] 加载宏 试验md5加密 可能遇到的问题 解决办法 下载宏文件[md5宏] 下载附件,解压,得md5宏.xla md5宏.zip 加载宏 依次打开[文件]-[选项]-[自定义功能区] 选中[开发工具] 这样在Excel顶部就多了一栏[开发工具] 选择[加载项]-[浏览]-选择刚刚下载的"md5宏.xla"-[确定]-勾选[Md5宏]-[确定] 试验md5加密 打开需要加密的Excel 在需要加密的列后面插入一列,假设叫做[密文] 单元格中输入 =L
跨平台编程中的宏定义(__LINE__和__DATE__极其有用)
要用师兄的计算机算东西,无赖那上面是WINDOWS的系统,为了写出能够跨平台的代码,需要在代码中用到宏来选择编译.一种方法是自己在Makefile里面定义好该平台对应的宏.实际上,编译器基本上都会有一些已经定义好的宏来区别当前的平台,不需要自己重新定义. 开源项目Pre-defined Compiler Macros里列出了各种编译器区别不同平台.不同STL库.编译器版本等的宏. 一个更加简单的办法可以获知编译器中预定义好的宏,就是使用命令echo | g++ -dM -E -.此命令交给编译器
Android.mk中添加宏定义
在Boardconfig.mk 中添加一个 IS_FLAG := true 由于Boardconfig.mk和各目录的Android.mk是相互关联的 所以我们可以在Android.mk 中添加 一个 ifdef IS_FLAG LOCAL_CFLAGS += -DHHHH endif 在Android.mk中添加的这行相当于在 该目录下的文件中定义了一个宏 #define HHHH 如果我们想要在某个工程中根据工程的不同来对相关的代码中的某段参数进行选择时,可以参考此方法
热门专题
delphi csv 读取列
python绘制简单图形
openwrt 查看 模组
el-table修改滚动条样式出现的问题
matplotlib画图颜色搭配
格局坐标刻度格式化数据
spark driver executor启动流程
layout_scrollFlags snap 百分比
升级修复Openssh
Redis setexpire 函数
修改表的字段注释语句
xenserver 网卡sr-iov
vs code配置python环境
html table 单独一页
sql server 把一天分成各个时间段
matlab画图中设置坐标间隔
c# webapi 实现科大讯飞的语音听写
sap物料被用户锁定后,是否占用授权
开发板 non flash
latex 不显示汉字