Как мой (C ++) код может определить, компилируется ли он в Eclipse? - PullRequest
0 голосов
/ 20 января 2010

Предыстория: я разрабатываю в Eclipse и вызываю макфайл из Гудзона для ночных сборок.Мне бы хотелось, чтобы для некоторых #ifdef s были разные значения, в зависимости от того, построен ли код в Eclipse или извне из make-файла.

Итак, что-то вроде #ifdef _Eclipse_ было бы хорошо.

Ответы [ 3 ]

3 голосов
/ 20 января 2010

Вы можете сами определить _Eclipse_ или что-то еще для сборки, которую вы запускаете в Eclipse.

1 голос
/ 20 января 2010

Почему вы хотите так загрязнять свой код?(Уточнение: я имею в виду написание кода, специфичного для Eclipse или Hudson. Просто выберите лучшее имя макроса и определите его в Eclipse или Hudson.)

Я бы ставил отдельные цели или иным образом изменял файл сборки, чтобы передать-DECLIPSE или -DHUDSON препроцессору.

Или передать параметр, чтобы сделать:
Свойства проекта -> Сборка C / C ++ -> Команда построения: make CFLAGS+=-DECLIPSE

Редактировать: Iневозможно получить + = для работы из командной строки.Возможно, вы захотите попробовать внутри Makefile:

  ifeq ($(BUILT_BY), eclipse)
    CFLAGS += -D_Eclipse_
    CXXFLAGS += -D_Eclipse_
  endif

и изменить команду make команды eclipse следующим образом: make BUILT_BY=eclipse

0 голосов
/ 21 января 2010

Извините, ребята, но на его вопрос отвечает другой ...

Передача C / C ++ # определения в makefile

...