我正在开发一个固件项目,该项目已经演变为多种产品,每个项目都有不同的“功能”,通常通过以下条件编译来添加这些功能:
#ifdef FEATURE_FOO
#include <some.h>
int some_function( void* param1) { ... }
#elsif defined(FEATURE_BAR)
...
#else
...
#endif
我目前正在处理的大多数文件都被此类块包围。
由于我们希望构建不同的功能集而无需更改代码,因此Makefile在相应的目标中包含那些不同的定义作为编译器的参数。
现在让我们来解决问题:
我尝试使用的IDE(Visual Studio Code和CLion)仅对他们认为实际上已编译的代码进行代码突出显示和分析(它们在Makefile中看不到定义),因此几乎不突出显示任何内容,这使得它们几乎无法使用(目前,我的Vim比CLion具有更多的语法突出显示和代码完成功能)。
是否可以告诉IDE哪些定义是在外部设置的? (我目前正在自己添加定义,但是那时我根本没有一个干净的工作区,需要在编译之前将其删除)