Добавьте CFLAGS в проект QMake без жесткого кодирования их в the.pro файл?


Я использую распределенный компилятор, и мне нужно добавить -m64 к CFLAGS, CXXFLAGS и LDFLAGS. Обычно, мои определения В.bashrc хороши, но qmake игнорирует их по какой-то причине. Стандартный способ сделать это, кажется, заключается в редактировании файла .pro, но я, очевидно, не хочу жестко кодировать архитектуру. Итак, я могу редактировать файл .pro, но я не могу ничего в нем жестко закодировать.

Я попробовал установить CXXFLAGS следующим образом:

QMAKE_CXXFLAGS += $(CFLAGS)
Но там написано: {[8]]}

Makefile: 17: * рекурсивная переменная 'CXXFLAGS' ссылается сама на себя (в конечном счете). Стоп.

1 3

1 ответ:

Я понял это прямо перед тем, как отправить вопрос, но поскольку ни у кого другого нет хорошего ответа на этот вопрос, я решил, что все равно отправлю его.

Мне нужно было не $(ENV_VAR), а $$(ENV_VAR), поэтому я добавил их в свой файл .pro:

QMAKE_CXXFLAGS += $$(CXXFLAGS)
QMAKE_CFLAGS += $$(CFLAGS)
QMAKE_LFLAGS += $$(LDFLAGS)

Это заставляет qmake уважать эти переменные среды. Обратите внимание, что qmake использует LFLAGS вместо LDFLAGS.

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