假设我的文件夹结构是这样的......
+ - 申请
|
+ - MICRO_CONTROLLER_1
|
+ - MICRO_CONTROLLER_2
|
+ - MICRO_CONTROLLER_3
我将编译开关(SELECT_MICRO)设置为#define SELECT_MICRO == MICRO_CONTROLLER_1,然后我的项目应该在MICRO_CONTROLLER_1中构建带有驱动程序文件的应用程序,类似地,如果#define SELECT_MICRO == MICRO_CONTROLLER_2,那么应用程序应该构建带有驱动程序文件的应用程序在MICRO_CONTROLLER_2中
如果有模板可以实现上述目的,请告诉我。
答案 0 :(得分:1)
您可以导出要构建的文件夹的特定路径,并提供可执行文件的路径。您可以获得更多信息。在这个帖子中。
How I could add dir to $PATH in Makefile?
或者只是维护不同的Makefile以进行不同的构建,并使用make -f来运行该特定的makefile。
我希望这是你最终想要表现的。
答案 1 :(得分:0)
通常你会define
你的预处理器定义告诉预处理器只包括,例如,MICRO_CONTROLLER_1代码块,并忽略其他所有内容。
以下内容应该足够了:
#if defined(MICRO_CONTROLLER_1)
// Block of code that is only available to MICRO_CONTROLLER_1
#elif defined(MICRO_CONTROLLER_2)
// ...
// All other microcontrollers you are supporting would follow this structure.
#endif
然后你需要define
MICRO_CONTROLLER_1。如果您使用IDE进行开发,通常会有一个用于预处理器指令的项目选项。这是你define
MICRO_CONTROLLER_1的地方。然后,您可以创建不同的“配置” - 每个微控制器都有一个“配置”。
答案 2 :(得分:0)
这仅在目录只包含文件时才有效。 #define是一个预处理程序指令。如果目录包含源文件,则需要在构建系统层而不是预处理器层解决它。
假设它只包含文件,您只需#include SELECT_MICRO # "Interface.h"