Как мне определить макросы препроцессора через MinGW make

#mingw #c-preprocessor #preprocessor #mingw32

#mingw #c-препроцессор #препроцессор #mingw32

Вопрос:

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

 mingw32-make -j8 -DDEVELOP
  
 mingw32-make -j8 -D DEVELOP
  

Но оба, похоже, терпят неудачу, когда первый дает мне:

 mingw32-make: invalid option -- E
mingw32-make: invalid option -- V
mingw32-make: invalid option -- E
  

за которым следует -help сообщение.
И второй начинает компиляцию, но затем переходит к mingw32-make: *** DEVELOP: No such file or directory. Stop. и останавливается, не сумев собрать exe.

Я использую GNU MAKE 4.2.1, который был установлен на стороне QT.

Я бы не хотел определять их из файлов моего проекта или на C , поскольку они уникальны для определенных сборок. Как мне это сделать?

Ответ №1:

У GNU Make нет -D параметра. Если вы хотите передать это своему компилятору, вам нужно проверить Makefile , есть ли переменная, в которую вы можете ее добавить, которая используется при компиляции. Обычно это будет CFLAGS и / или CXXFLAGS .

Иногда вы можете сделать

 mingw32-make -j8 CXXFLAGS="-DDEVELOP"
  

или, если это не сработает, вы могли бы попробовать вот так

 mingw32-make -j8 CXX="g   -DDEVELOP"
  

В худшем случае вам нужно будет вручную добавить -DDEVELOP в Makefile , где выполняется компиляция (ищите флаг компиляции -c или другие флаги, подобные -O ).