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

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

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

-Umacro   相当于C语言中的#undef macro -undef   取消对任何非标准宏的定义  
那么如果用-UFED 这个编译选项的话,那么是不是就是禁止了FED这个宏呢?
...全文
492 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
wywgk 2009-03-18
  • 打赏
  • 举报
回复
xuexi
xempo 2009-03-14
  • 打赏
  • 举报
回复
我有一个DOS程序,可以一次修改(删除)一个文件夹所文件的关键词。
运行fe
然后CTRL_F,弹出文件管理窗,再按F3
输入你要的关键词,后面的参数:/c区分大小写,/r是替换,/d是删除。如 :
search TEST /c /d
回车则可。你可先备份。
如要用Supper去替换TEST,可以这样:
search TEST Supper /c /r
fe的下载http://download.csdn.net/source/1015233
xiabeizi 2009-03-13
  • 打赏
  • 举报
回复
呵,对,用sed比较不错!
lydstory 2009-03-12
  • 打赏
  • 举报
回复
makefile里应该有这样的功能吧,你不是很多文件吗?
能到是gcc 一个一个编译
xiabeizi 2009-03-06
  • 打赏
  • 举报
回复
呵,可能也只能这样了,我试试吧,谢谢楼上的朋友!
独孤过儿 2009-03-06
  • 打赏
  • 举报
回复
能不能把源代码落下啦,然后用Source Insight改完了,再传上去
xiabeizi 2009-03-06
  • 打赏
  • 举报
回复
可是我是纯Linux环境编译的,没有建立工程,如何用vim + ctags来替换一个文件夹中的所有宏呢?
刚查了查ctags好像也没有办法这样做吧?
xiabeizi 2009-03-06
  • 打赏
  • 举报
回复
呵,楼上方法看起来倒是可行,试试看
独孤过儿 2009-03-06
  • 打赏
  • 举报
回复
呵呵,兄弟我教你个超简单的方法!

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

#define TEST

然后替换成

#define NOTEST

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

#ifdef TEST
other statements;
#endif
xiabeizi 2009-03-06
  • 打赏
  • 举报
回复
呵, 因为我想编译一个从网上下的一个源文件 ,只是想让源文件中的一个宏不起作用而已,如果挨个改的话太麻烦了
一 铭 2009-03-06
  • 打赏
  • 举报
回复
楼上正解, 用 sed
hupo1982 2009-03-06
  • 打赏
  • 举报
回复
用grep+sed在命令行中或者写个脚本文件可不可以把所有的都替换过来?
一 铭 2009-03-05
  • 打赏
  • 举报
回复
若是不用,写在文件里干嘛
fox000002 2009-03-05
  • 打赏
  • 举报
回复
对写在源码里的 define,看起来 gcc 命令行是没有办法 undef 的
一 铭 2009-03-05
  • 打赏
  • 举报
回复
应该是-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.
...
xhy_851221 2009-03-05
  • 打赏
  • 举报
回复
没用过
帮顶
go_go_vip 2009-03-05
  • 打赏
  • 举报
回复
关注

  • 打赏
  • 举报
回复
不会..帮up
xiabeizi 2009-03-05
  • 打赏
  • 举报
回复
用 -UFED好像也不起作用啊!

23,121

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧