gpt4 book ai didi

c++ - C++如何使用相同的.h并在使用相同的.h时选择不同的.cpp?

转载 作者:行者123 更新时间:2023-12-02 10:10:45 24 4
gpt4 key购买 nike

这是场景:
“baselogger.h”包含API,我在两种情况下(案例A和案例B,A对应于1.cpp,B对应于2.cpp)实现了这些API,然后如何使用不同的cpp编写宏以编译不同的案例在“baselogger.h”中实现API?

最佳答案

您不必为此使用宏。相反,在情况A中可以编译并与1.cpp链接,在情况B中可以编译并与2.cpp链接。
CMake的例子:

option (CASE_A "Descriptive description" ON)
if (CASE_A)
target_sources(target_name PRIVATE 1.cpp)
else ()
target_sources(target_name PRIVATE 2.cpp)
endif ()
安装了选件,您可能会遇到其他情况。这对于将API移植到不同系统通常很有用。

但是基于宏的解决方案也可以工作:
// 1.cpp
#ifdef MACRO_CASE_A
// case A implementation for baselogger.h
#endif

// 2.cpp
#ifndef MACRO_CASE_A
// case B implementation for baselogger.h
#endif
用这种方法,总是简单地编译两个源。

关于c++ - C++如何使用相同的.h并在使用相同的.h时选择不同的.cpp?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63626759/

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