rpmbuild构建包时的宏定义的赋值】的更多相关文章

rpmbuild -bb  SPECS/git.spec --define="_topdir `pwd`" rpmbuild --rebuild  SRPMS/git.src.rpm --define="dist .f22" 说明: 1.rpmbuid构建时宏定义字段macro的赋值方法,假设宏macro对应的值为aaa,   --define="macro  aaa"即可 2.如果涉及到多个宏的定义,可以在宏定义的后面继续加上--define,…
#pragma message("this is message") #pragma message只能打印字符串,如果想打印任何宏定义可使用: #define PRINT_MACRO_HELPER(x) #x #define PRINT_MACRO(x) #x"="PRINT_MACRO_HELPER(x) #pragma message(PRINT_MACRO(var)) 如:#define __cplusplus 199911L #pragma message…
前言: 最近做项目时遇到了很多莫名其妙的问题,其中就有这个打印(NSLog).也不多废话了,我们先来回顾一下Xcode8发布以来,我们遇到的一些关于打印的问题,当然也有解决方法: 1.Xcode8打印问题 先看下面这个图片,相信使用Xcode升级到Xcode8的都不陌生吧. 当时的感觉就是莫名其妙,这里打印出来的一大堆日志,然而对于我们开发并没有多大用处,个人感觉是apple测试Xcode时查看的打印信息,发布时忘记删掉的原因(谨代表个人想法,若有错误,望指出).当然,网上也给出了解决方法: 很…
C语言中如何使用宏C(和C++)中的宏(Macro)属于编译器预处理的范畴,属于编译期概念(而非运行期概念).下面对常遇到的宏的使用问题做了简单总结. 关于#和## 在C语言的宏中,#的功能是将其后面的宏参数进行字符串化操作(Stringfication),简单说就是在对它所引用的宏变量 通过替换后在其左右各加上一个双引号.比如下面代码中的宏: #define WARN_IF(EXP) do{ if (EXP) fprintf(stderr, "Warning: " #EXP &quo…
C语言中宏定义(#define)时do{}while(0)的价值 最近在新公司的代码中发现到处用到do{...}while(0),google了一下,发现Stack Overflow上早有很多讨论,总结了一下讨论,加上自己的理解,do{...}while(0)的价值主要体现在: 1. 增加代码的适应性 下面的宏定义没有使用do{...}while(0) #define FOO(x) foo(x); bar(x); 这样宏定义,单独调用不会出现问题,例如: FOO(100) 宏扩展后变成: 1 f…
在使用maven构建项目的war包时,有时并不需要src/webapp/WEB-INF/下的一些文件. 这时可以通过maven-war-plugin创建配置来排除这些文件.下面贴出我平时使用的pom.xml文件 配置信息在 project -> build -> plugins -> plugin -> maven-war-plugin <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi…
之前从Git检出项目以后,项目编译不能通过,发现是缺少依赖的外部插件,于是通过NuGet去获取项目依赖的插件,如何通过NuGet恢复使用的插件请使用NuGet还原项目插件. 但是就是在使用NuGet还原依赖插件的时候,出现了“尝试还原程序包时出错"*"已拥有为"**"定义的依赖项”的错误提示,如下图: 在网上搜索好久也找不到类似的回答,最后无奈,问项目组老大,终于得到了解决方案:更新NuGet插件! 更新NuGet后,问题就解决了,至于如何更新NuGet,请参照:…
在使用maven构建项目的war包时,有时并不需要src/webapp/WEB-INF/下的一些文件. 这时可以通过maven-war-plugin创建配置来排除这些文件.下面贴出我平时使用的pom.xml文件 配置信息在 project -> build -> plugins -> plugin -> maven-war-plugin <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi…
#的功能是将其后面的宏参数进行字符串化操作(Stringfication),简单说就是在对它所引用的宏变量 通过替换后在其左右各加上一个双引号. #define example(instr) printf("the input string is:\t%s\n",#instr) #define example1(instr) #instr 当使用该宏定义时: example(abc); 在编译时将会展开成:printf("the input string is:\t%s\n&…
在 C 语言中,我们都知道可以用宏定义来编写函数,一般称为宏函数.如果一个宏函数比较复杂,那么在编写这样的宏函数是有一定技巧和注意事项的.文章给出一些我认为值得关注的地方,以及一些注意事项(个人建议),最后介绍了一种使用 do-while 语句来编写宏定义函数的技巧.下面我将从简单到复杂,以便于大家理解. 一个简单的例子 宏定义函数最简单的情况便是只有一条语句.下面我给出了四个例子,请仔细观察各个例子之间的区别,并尝试思考哪些是可以正确运行的. /* 例子 1 */ #include <stdi…