gpt4 book ai didi

C++、g++、基于主机名的条件编译?

转载 作者:行者123 更新时间:2023-11-27 22:44:28 25 4
gpt4 key购买 nike

我遇到了以下问题:

我们的测试环境无法完全模拟生产环境的某个硬件部分,因此在测试应用程序时需要排除一些代码。

因此我需要一些东西

 #IFNDEF testing_env
//code to exclude
#ENDIF

如果我包含一个 #DEFINE testing_env 就可以正常工作,但是像这样我需要在每次切换环境时手动注释/取消注释这个定义。

我正在寻找一种基于主机名或类似功能来执行此操作的方法。我试图寻找基于环境变量的条件编译,但显然这是不可能的。

最佳答案

通常,您会为测试环境创建一个特定的构建配置文件(专用 make 规则),并为其他环境创建另一个构建配置文件(其他 make 规则)。

然后可以在编译行(通常在 Makefile 中)使用 -DTEST_ENVIRONMENT 指定测试环境,例如。使用 -D 选项:

g++ -DTEST_ENVIRONMENT -o 测试 main.c

然后

#IFNDEF TEST_ENVIRONMENT
//code to exclude
#ENDIF

将正常工作。

关于C++、g++、基于主机名的条件编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44950200/

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