将CFLAGS添加到QMake项目而不在.pro文件中对其进行硬编码?

时间:2013-07-10 18:24:17

标签: environment-variables qmake

我正在使用分布式编译器,我需要将-m64添加到CFLAGSCXXFLAGSLDFLAGS。通常,我在.bashrc中的定义很好,但qmake由于某种原因忽略了它们。这样做的标准方法似乎是编辑.pro文件,但我显然不想对架构进行硬编码。所以,我可以编辑.pro文件,但我无法对其中的任何内容进行硬编码。

我尝试像这样设置CXXFLAGS:

QMAKE_CXXFLAGS += $(CFLAGS)

但它说:

  

Makefile:17: * 递归变量`CXXFLAGS'引用自身(最终)。停止。

1 个答案:

答案 0 :(得分:8)

我在发布这个问题之前就已经知道了这一点,但由于没有其他人对此有好的答案,我想我还是会发布它。

我需要的不是$(ENV_VAR),而是$$(ENV_VAR),所以我将这些添加到我的.pro文件中:

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

这使得qmake尊重那些环境变量。请注意,qmake使用LFLAGS代替LDFLAGS

这仍然不理想,因为您可能需要重新运行qmake来更改环境变量,而不是让make处理它们,但它肯定比编辑它更好。每次都是专业档案。