我想制作一个程序,其中除了主目录之外还包括子目录中的源文件和头文件。子目录的名称和部分文件名本身需要使用编译器常量来选择。这是一个示例文件树。
=main.h
=main.c
=anotherfile.h
=anotherfile.c
=A
---= A_file1.h
---= A_file1.c
---= A_file2.h
=B
---= B_file1.h
---= B_file1.c
---= B_file2.h
每个编译都涉及 main 和 anotherfile,它们引用 X_file1 和 X_file2,其中“X”在构建时选择或使用常量。所以项目既可以用 A 文件构建,也可以用 B 文件构建。
那么如何(以及“最佳”方法)如何实现这一点?可以在#include 语句中引用编译器常量吗?(类似于#include X+"/"+"x+"_file1.h)或者还有其他方法吗?
我对 C 构建系统和预处理器非常陌生,如果这是一个糟糕的问题,我深表歉意。搜索引擎并没有太大帮助。