CFLAGS 和 gcc 在 Makefile 中未传递

1 投票
1 回答
1727 浏览
提问于 2025-04-17 00:15

我正在尝试在OSX上编译32位的Python。为此,我想指定一个参数-m32,所以我认真地设置了

CFLAGS='-m32' LDFLAGS='-m32' ./configure

配置执行得很顺利,但当我运行make命令时,gcc的执行中没有看到-m32这个参数。为了让它生效,我不得不采取更激进的方法:

CFLAGS='-m32' LDFLAGS='-m32' CC='gcc -m32' ./configure

我不太明白我指定的CFLAGS参数为什么没有被传递(而LDFLAGS却有。我在Makefile中找到了LDFLAG=-m32)。这是配置脚本的错误,还是我做错了什么?

我使用的是Python 2.6.0(别问我为什么)

1 个回答

2

好的,我可以在Python-2.6上重现这个问题。看起来这是这个版本的一个bug,而在更新的版本中已经修复了。

不过,我可以告诉你,很多软件包会覆盖或过滤掉一些被认为不安全的CFLAGS值。这通常也包括-m32这个选项。

而且,很多软件包根本不理会LDFLAGS(这确实是个错误)。所以,在构建32位软件包的时候,像你这样覆盖CC,而不动CFLAGSLDFLAGS是很常见的做法。

撰写回答