Binary 为什么不考虑CFLAGS?

Binary 为什么不考虑CFLAGS?,binary,compilation,Binary,Compilation,我正在为我的Mac OS X 10.5.8 Intel 64位计算机编译Apache 2.2.17,我更喜欢64位编译,因此我在./configure like so之前提供必要的标志: CFLAGS=“-arch x86_64” 但新编译的二进制文件不是64位: 文件/usr/local/apache/bin/httpd /usr/local/apache/bin/httpd:Mach-O可执行文件i386 我很困惑 我尝试过以下变化: CFLAGS=“-arch x86_64” CXXFLA

我正在为我的Mac OS X 10.5.8 Intel 64位计算机编译Apache 2.2.17,我更喜欢64位编译,因此我在./configure like so之前提供必要的标志:

CFLAGS=“-arch x86_64”

但新编译的二进制文件不是64位:

文件/usr/local/apache/bin/httpd /usr/local/apache/bin/httpd:Mach-O可执行文件i386

我很困惑

我尝试过以下变化:

CFLAGS=“-arch x86_64” CXXFLAGS=“-arch x86_64” LDFLAGS=“-arch x86_64”

在开始时使用或不使用“export”或“env”命令(例如export CFLAGS=“-arch x86_64”),且结果不变


可能有什么问题?

您正在问一个问题,为什么您的编译器会做或不做某些事情。请编辑您的问题,以包括您正在使用的编译器。#哪个gcc-4.2返回/usr/bin/gcc-4.2,所以它应该是gcc-4.2作为对我所说内容的确认,下面是config.status的摘录(由./configure命令生成)另一台Mac OS X 10.5.8机器编译Apache时使用了正确的C&CXX标志:
code
config.status配置人./configure,由GNU Autoconf 2.64生成,选项为“''-enable layout=DIYMacServer'-enable mods shared=all'.-enable suexec'-enable so''CFLAGS=-arch x86\u 64''CPPFLAGS=-arch x86\u 64'
code
显然,C&CXX标志就在那里。在有问题的OS X 10.5.8机器中,config.status的同一部分不包含C或CXX标志您不需要处理环境变量,您可以使用
/configure CFLAGS=“-foo-bar”CPPFLAGS=-foo-bar-baz”
在命令行上传递所有要配置的内容。还可以设置CFLAGS(使用环境变量或命令行)通常会阻止设置任何默认cflag,请确保这不是您的问题。最后,是否可以编译64位的简单测试?
intmain(void){return 0;}
然后
gcc-arch x86\u 64 simple\u test.c
。感谢您提供的提示。经过多次尝试,我终于找到了原因。原因是./configure不需要任何环境(或shell)除非在同一命令行中输入,否则将变量计入帐户。在输入./configure--[options]之前,我在一个命令行中输入shell变量,因此它忘记了shell变量(C&CXX标志)所有内容都必须在一个紧凑的行中输入,就像您给出的示例一样。哦,这个简单的测试必须绝对编译64位,因为gcc和flags变量是在同一行中输入的。您正在询问编译器为什么做或不做某件事。请编辑您的问题,以包括您正在使用的编译器。#哪个gcc-4。2返回/usr/bin/gcc-4.2,因此它应该是gcc-4.2作为对我所说内容的确认,这里是config.status(由./configure命令生成)的摘录另一台Mac OS X 10.5.8机器编译Apache时使用了正确的C&CXX标志:
code
config.status配置人./configure,由GNU Autoconf 2.64生成,选项为\“'-enable layout=DIYMacServer'-enable mods shared=all'.-enable suexec'-enable so''CFLAGS=-arch x86_64''CPPFLAGS=-arch x86_64'\“
code
很明显,C&CXX标志就在那里。在有问题的OS X 10.5.8机器中,config.status的同一部分不包含C或CXX标志您不需要处理环境变量,您可以使用
/configure CFLAGS=“-foo-bar”CPPFLAGS=-foo-bar-baz在命令行上传递所有要配置的内容“
。另外,设置CFLAGS(使用环境变量或在命令行上)通常会阻止设置任何默认CFLAGS,请确保这不是您的问题。最后,是否可以编译64位的简单测试?
int main(void){return 0;}”
然后
gcc-arch x86\u 64 simple\u test.c
。感谢您提供的提示。经过多次尝试,我终于找到了原因。原因是./configure不需要任何环境(或shell)除非在同一命令行中输入,否则将变量计入帐户。在输入./configure--[options]之前,我在一个命令行中输入shell变量,因此它忘记了shell变量(C&CXX标志)所有测试都必须在一个紧凑的行中输入,就像您给出的示例一样。哦,这个简单的测试必须绝对编译64位,因为gcc和flags变量是在同一行中输入的。