gpt4 book ai didi

c++ - 如何在编译过程中编辑可执行文件而不更改其源代码?

转载 作者:行者123 更新时间:2023-11-30 18:31:03 42 4
gpt4 key购买 nike

我必须编写一个Makefile来编译文件year.c,之后它将显示当前年份(2014年),而不是上一年(2013年)。我尝试过使用sed函数,但它仅在以下情况下才有效我使用 make run 。

#include <stdio.h>

#ifndef YEAR
#define YEAR "2013"
#endif

int main(){
printf("Hello world from " YEAR "\n");
return 0;
}

和 Makefile:

year: year.c
gcc year.c -o year

run:
./year | sed -e 's/3/4/g'
clean:
rm year Makefile

最佳答案

只需在命令行上定义 YEAR - #ifndef 将确保它不会被重新定义:

gcc -DYEAR=\"2014\" -o year year.c 

关于c++ - 如何在编译过程中编辑可执行文件而不更改其源代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26685325/

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