2014-11-20 63 views
0

我在一个非常大的代码库中工作,该代码库有条件编译标志为几个不同的嵌入式硬件平台构建代码。有很大一部分代码是常见的,并且有一个硬件适配层,它应该是独立的h/w,但是也有很多通用代码,可以对包含在#ifdef#else中的特定硬件函数进行函数调用进行条件编译。不幸的是,这是我们在多个团队中工作的范例,因此我需要使用它,即无法选择转向真正独立于硬件的文件。我为这3个平台(迄今为止)开发和调试这些平台,并不断从我的符号中添加/删除编译器标志,并重新构建我的CDT索引,每次需要从一个平台开发/调试问题到另一个。重建索引可能需要很长时间(长达一小时),即使采用积极的资源过滤。Eclipse CDT:在一个代码库中管理条件编译(#ifdef)

我们使用Perforce作为我们的CVS,我希望在单个Perforce工作区内工作,因此我不会与检出哪些文件不同步。我试图为这些类型的平台创建单独的Eclipse项目,但是我收到一条错误消息,说明资源(Perforce工作区代码)已被另一个项目使用。

有没有人有任何建议?

我正在使用Eclipse Luna和CDT。

感谢

回答

0

对于您提到的需要删除和添加符号和改变构建选项在项目属性的一部分,这是配置对。假设给定配置(特定硬件平台)的设置非常静态,请定义配置列表(每个平台一个),并根据相关平台设置选项。这样,只需更改配置就可以更改一组构建选项。

对于文件特定的设置也是如此,如“从构建中排除”。您可以为每个平台构建不同的文件集。

我不知道Eclipse是否会在每次切换配置时重新编制索引。