Переменная препроцессора C++

Я использую SKELETON_JAR переменная на моем C++ кодирует в одном заголовке. Однако я хочу позволить пользователю определить место банки во время компиляции легко. Я думаю самый легкий способ сделать, который должен поместить, это определяет в make-файле, то, что так?

#define SKELETON_JAR "./Util.jar"
6
задан Brian Tompsett - 汤莱恩 9 June 2016 в 20:34
поделиться

3 ответа

В вашем коде:

#ifndef SKELETON_JAR
  #define SKELETON_JAR "./Util.jar" // default path
#endif

, а затем в make-файле используйте CPPFLAGS: = - DSKELETON_JAR = "./ Util.jar" .

Конечно, у вас есть чтобы убедиться, что CPPFLAGS передаются компилятору как часть правила компиляции, которое имеет место, если вы используете неявные правила по умолчанию.

Из документации GNU Make :

Компиляция Программы на C

no создаются автоматически из nc с помощью команды вида `$ (CC) -c $ (CPPFLAGS) $ (CFLAGS) '

8
ответ дан 8 December 2019 в 17:22
поделиться

В зависимости от вашего компилятора, обычный способ сделать это - использовать флаг компилятора -D в make-файле. Например:

MYFLAGS = -DSKELETON_JAR = "foo"

затем позже:

gcc $ (MYFLAGS) $ (OTHER_STUFF)

6
ответ дан 8 December 2019 в 17:22
поделиться

Используйте флаги компиляции для них и определите флаг в Makefile.

0
ответ дан 8 December 2019 в 17:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: