代码之家  ›  专栏  ›  技术社区  ›  Gui13

自动触摸使用特定定义的所有文件(ifdef foo/endif)

  •  1
  • Gui13  · 技术社区  · 14 年前

    假设您有一个包含大量文件的C项目,并且使用 -D 在gcc中定义一些标志的选项。

    在我的特殊情况下,我有很多包含这种东西的文件:

    void foo( sometype *x)
    {
       do_stuff_with_x(x);
    
    #ifdef MY_FLAG
       do_additional_stuff(x);
    #endif
    
    #ifdef OTHER_FLAG
       do_some_other_stuff(x);
    #endif
    
    }
    

    现在,每当我更改其中一个标志时,我需要清除项目并重新编译所有源代码,因为我不能有选择地 触摸 使用此标志的文件。

    是否可能,使用 日食 在下面 窗户 这样做吗? 也许是Eclipse插件,或者其他什么。

    对于Linux,我可能会使用 grep , find touch 但是在窗户上我不知道。

    3 回复  |  直到 9 年前
        1
  •  1
  •   Gui13    14 年前

    好吧,在人们的压力下,我安装了MSY并使用了如下命令:

    $ find . -name "*.c" -or -name "*.h" | xargs grep "MYFLAG" -q -l | xargs touch
    

    实际上,您可以向 find 更好地调优你的触摸文件。

    我不知道 xargs ,我的命令行有什么想法吗?

        2
  •  0
  •   Remo.D    14 年前

    如果您已经准备了一个带有grep、find和touch的Unix解决方案,为什么不在Windows上做同样的工作呢?您可以使用MSY和它附带的Unix工具。

    我现在的机器上没有Eclipse安装,但我相信您可以从Eclipse启动一批。

        3
  •  0
  •   jamesdlin    14 年前

    你为什么不把grep、find和touch混合使用呢?

    http://unxutils.sourceforge.net/