5

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

我尝试像这样设置 CXXFLAGS :

QMAKE_CXXFLAGS += $(CFLAGS)

但它说:

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

4

1 回答 1

10

我在发布问题之前就想到了这一点,但是由于没有其他人对此有很好的答案,所以我想我还是会发布它。

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

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

这使得 qmake 尊重那些环境变量。请注意,qmake 使用LFLAGS而不是LDFLAGS.

这仍然不理想,因为您可能需要重新运行qmake以更改环境变量,而不是make智能地处理它们,但这绝对比每次都编辑 .pro 文件要好。

于 2013-07-10T18:24:16.510 回答