gpt4 book ai didi

c - 如何告诉 GNU MAKE 将 .po 文件视为 .h 文件?

转载 作者:行者123 更新时间:2023-11-30 18:10:45 25 4
gpt4 key购买 nike

我有一个 .c 文件,它依赖于生成的名为 control.po 的包含文件,但当它包含在依赖项中时,make 认为需要构建它。

make[1]: *** 没有规则可以创建“proccmd.o”所需的目标“control.po”。停止。

proccmd.o:  ddemsgid.do ddelen.do control.po tprecs.ro tlktp.h comtrac.h basmsg.fo \
tiop.h

如果我将 control.po 复制到 control.fo 并更改依赖项 control.po,它就会编译。

我尝试更改 .SUFFIXES这边走

.SUFFIXES:
.SUFFIXES: .c .o .h .po

还有这个

.SUFFIXES:
.SUFFIXES: .c .o .h

结果相同。

我假设 .po 文件存在一些隐含规则。

我正在将一个大型项目从专有构建转换为 gnu make,因此我无法轻松更改生成文件的文件扩展名。

最佳答案

I am ASSUMING there is some implied rule about .po files.

错误的假设。内置规则是通过 make -p 获得的,并且它们没有提及 .po

<小时/>

正如我在评论中所说:

  • 构建大型项目时,ninja更合适(它默认并行运行,如 make -j 并且运行速度更快)。如果您从专有构建系统迁移,可能会更好。您需要编写或找到您的 build.ninja 生成器(例如,使用 Python 脚本生成它,使用 meson 等)。

  • 如果您继续使用 GNU make,您应该为 .po 后缀添加您自己的配方和规则(假设您的 foo.po 是从一些foo.src生成的)。所以阅读documentation of GNU make 你可能想要一些 rule喜欢

    %.po: %.src
    # how to build a .po from some .src fle
  • 您可能会发现使用remake很有用。使用 -x 来调试 Makefile

关于c - 如何告诉 GNU MAKE 将 .po 文件视为 .h 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55833266/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com