当前位置:  技术问答>linux和unix

如何用gcc编译时使文件中的一个宏不起作用!

    来源: 互联网  发布时间:2016-05-24

    本文导语:  想使所有文件中的一个宏不起作用, 因为文件太多了,所以不想大量的修改文件,记得好像Gcc 编译选项中有类似的功能,可是查了查有这么几个: -Dmacro   相当于C语言中的#define macro    -Dmacro=defn   相当...

想使所有文件中的一个宏不起作用, 因为文件太多了,所以不想大量的修改文件,记得好像Gcc 编译选项中有类似的功能,可是查了查有这么几个:
-Dmacro   相当于C语言中的#define macro   

-Dmacro=defn   相当于C语言中的#define macro=defn   

-Umacro   相当于C语言中的#undef macro -undef   取消对任何非标准宏的定义  
那么如果用-UFED 这个编译选项的话,那么是不是就是禁止了FED这个宏呢?
 

|
用grep+sed在命令行中或者写个脚本文件可不可以把所有的都替换过来?

|
应该是-U把
$man gcc
...

 -D and -U options are processed in the order they are given on the command
           line.  All -imacros file and -include file options are processed after all -D
           and -U options.

       -U name
           Cancel any previous definition of name, either built in or provided with a -D
           option.
...

|
楼上正解, 用 sed 

|
呵呵,兄弟我教你个超简单的方法!

你整体替换整个工程中的这样的语句:

#define TEST

然后替换成

#define NOTEST

然后,所有这样的语句就都骗过去了:

#ifdef TEST
    other statements;
#endif

|
makefile里应该有这样的功能吧,你不是很多文件吗?
能到是gcc 一个一个编译

|
  关注


|
没用过
帮顶

|
对写在源码里的 define,看起来 gcc 命令行是没有办法 undef 的

|
若是不用,写在文件里干嘛

|
能不能把源代码落下啦,然后用Source Insight改完了,再传上去

    
 
 

您可能感兴趣的文章:

  • arm-linux-gcc交叉编译出错,但gcc编译没错,什么原因呢???
  • 嵌入式linux开发:一段代码在windows平台用VC编译运行正常,在linux平台用gcc编译运行正常,但是用arm-linux-gcc编译在嵌入式板子上运行就不正常.
  • GCC3.4可以编译2.4内核吗 如何查看某版本内核是用哪个版本gcc编译的
  • 使用popen来执行gcc命令,如何根据读出来的gcc的输出来判断gcc是否编译成功?
  • 问:关于gcc编译器和g++编译器
  • 求一个编译好的的gcc编译器
  • 编译GCC时能不能只编译C/C++的编译器?
  • gcc编译时出错,gcc: installation problem, cannot exec `as': 没有那个文件或目录!!!求助呀呀!!!!!
  • 建立较差编译环境,编译gcc-3.4.4出错
  • gcc与arm-linux-gcc编译的问题???
  • Linux下gcc编译时,如何以静态链接的形式编译?
  • Solaris8,安装了iconv,gcc和gcclib,然后用gcc编译c程序出错。
  • 使用eclipse 加入arm-elf-gcc 或arm-linux-gcc 编译器为什么不好使
  • 是否必须用同一版本GCC编译内核、应用程序、库甚至GCC自己?
  • linux x86_64下由于拷贝gcc的lib目录导致gcc编译器出错
  • GCC编译程序时,有自定义头文件,提示找不到该头文件,但他就在这个目录中,如何设置GCC参数?
  • 使用gcc编译器进行代码编译出来的程序是否遵循gpl协议
  • 为什么g++编译通过了,而gcc却编译通过不了???
  • ubuntu 10.10出现极其诡异的情况,使用gcc编译没任何反应,可以继续输入,但是不提示任何错误;使用make编译效果一样;
  • 求助:当用 gcc 编译时没,加上优化选项 -02 ,可是提示是 gcc: unrecognized option `-02'
  • gcc编译时参数 -lm 是什么意思,起什么作用?谢谢指点!
  • gcc中连接器ld -r命令是什么作用
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请问用GCC 编译,如何生成MAP文件?就是内存的分布映像文件?
  • 在Unix环境下用gcc如何编译成动态链接库文件?类似Windows下的DLL文件。
  • 请大家帮忙gnu ftp上gcc源码是哪个文件?
  • 在linux中"XXX.l"是什么文件(文件扩展名为L),用gcc怎么编译?谢谢大家!
  • 在gcc里面,用哪个参数将几个目标文件链成一个大的目标文件(不是最终的可执行文件)
  • gcc中,一个.c文件中的函数,如何调用另一个.c文件中的函数?
  • gcc生成什么样的目标文件?
  • gcc程序怎么不能将输出重定向到文件或管道呀,你们有这个问题吗?
  • 请教如何能把 gcc编译的所有信息存放到一个文件里
  • 使用gcc,如何在Solaris上生成so动态库文件?
  • gcc加什么选项可以把一个.c文件编译为相应的.o文件?
  • gcc的编译头文件问题
  • 关于用gcc(g++) 编译其它扩展名(比如hpp)的合法的源文件??
  • GCC是怎么通过.h文件找到C函数库的
  • 怎么将GCC的出错信息导入到文件中?
  • 请问:ubuntu下编译的openssl的.so文件放在那个目录 下阿?GCC如何导入.so的库文件?
  • 减小GCC编译的文件的大小
  • ubuntu gcc 找不到 stdarg.h文件
  • 如何使用arm-uclibc-gcc将.c文件编译生成.a,将.c文件编译生成.cgi?
  • gcc 编译多文件遇到问题
  • Linux下GCC内置原子操作函数(多线程资源访问)介绍
  • 命令:mips_fp_le-gcc,mipsel-gcc 是什么意思?跟一般的gcc有什么区别?
  • 怎样升级我的GCC呀,我用的RH7.2,GCC 2.96 ,我从网上下载了一个gcc-3.2.3.tar.gz
  • arm-elf-gcc 和 arm-linux-gcc有什么区别?arm-elf-gcc里的elf代表什么?
  • gcc-ccore、avr-gcc及arm-gcc的区别
  • gcc在哪里?bash:gcc:command not found
  • 如何删掉GCC3.0(我需要GCC2.0-----)
  • Windows版GCC TDM-GCC
  • 急问:如何卸掉gcc 3.2庄gcc 2.96
  • 有人遇到过吗,在安装GCC时提示,"checking gcc ...no "
  • GCC无法安装的问题,希望有人帮我( Debian 4.04ra无法安装GCC)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3