Autoconf 忽略编译器标志

问题描述 投票:0回答:2

我正在尝试构建一个具有非本机架构的 C 库。我正在运行 OSX 10.6(即 x86_64),但我需要为 i386 编译的库。通常,您只需添加编译器标志:-arch i386。但我使用的是 Autoconf,它会在配置文件中忽略此内容,如果我尝试运行: ./configure CC="gcc -arch i386",它也会忽略它。

我知道它构建 x86_64 目标文件,因为我使用 otool 查看了标头。真正的亮点是,当 autoconf 写出配置摘要时,它会在 cc 标志中列出 -arch i386。这是怎么回事?

规格:

  • OSX 10.6.2
  • 海湾合作委员会4.2.1
  • 自动配置2.64
  • 制作3.81
c x86 autoconf
2个回答
1
投票

假设“CFLAGS='-arch i386'”就是您所说的“通常,您只需添加编译器标志”时的意思,我最好的猜测是代码的维护者在configure.ac中做了一些错误的事情并且覆盖 CFLAGS。检查configure.ac(或configure.in,如果项目是旧的)并查看它们是否已明确分配给CC 或CFLAGS。还有可能是您的分配有问题。已经完成了应该可以工作。


0
投票

您想在 CFLAGS 环境变量中设置它,autoconf 应该将其附加到它决定 CFLAGS 应该是什么的位置。如果您输入 ./configure --help,您应该获得所有有影响的环境变量的列表。

© www.soinside.com 2019 - 2024. All rights reserved.