Eclipse C исключает заголовочный файл в конфигурации сборки

В Eclipse, используя CDT.

Есть ли быстрый способ иметь две идентичные конфигурации сборки, но в одной конфигурации использовать только src / foo.h, а в другой только src / bar / foo.h?

В src / dir есть много других заголовочных файлов, и я с оптимизмом надеюсь, что не придется добавлять их все по одному, когда только один файл фактически отличается.

Я также не очень хочу перемещать файлы или изменять их, поскольку они не являются библиотеками или структурами каталогов, которые я написал сам.
(Если я действительно должен, то я думаю, что я должен разобраться)

Я полагаю, что какой-то «исключающий» список был бы идеальным. Это существует?

0

Решение

Определите макрос, который скажет вам, для какой конфигурации сборки вы строите, а затем используйте его, чтобы решить, какой файл включить.

Щелкните правой кнопкой мыши по вашему проекту, выберите «Свойства». Затем в появившемся диалоговом окне выберите C / C ++ Build, затем Настройки. Вы должны получить представление, которое позволит вам определить определения препроцессора (макросы).

Затем в вашем заголовочном файле сделайте следующее:

#ifndef MY_MACRO

// contents of header file only available when MY_MACRO is NOT defined

#endif

Или вы можете (и, вероятно, должны) сделать в точке включения вместо этого, так что это исходный файл:

#ifdef MY_MACRO
#  include "bar.h"#else
#  include "foo/bar.h"#endif

Если вы включили заголовочный файл из нескольких исходных файлов и не хотите копировать вышеупомянутые строки, вы можете добавить другой заголовок, который включит вас, просто скопировав строки выше, а затем включив этот заголовок везде.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]