在Mac OS X上更改默认的g ++架构?

时间:2011-01-04 11:36:01

标签: c++ macos

使用Mac OS X 10.6 Apple更改了g ++的默认目标,因此它生成64位而不是32位代码。我知道我可以在命令行中指定“-arch i386”,但有没有办法全局通过环境变量或类似方式更改默认架构? (我不断收到链接错误,因为我在找到所有所需的地方时遇到了真正的问题,我需要在我正在移植的项目中指定架构。)

2 个答案:

答案 0 :(得分:2)

不是我知道的。根据配置和&您正在使用的构建系统,将CXXFLAGSCFLAGSLDFLAGS环境变量设置为包含-arch i386可以提供帮助。但是,有些配置&构建系统很棘手,可能还不足以设置这些变量。

另一种选择是在g++之前的PATH位置提供/usr/bin(和朋友一样)bash脚本,并使用-arch i386调用实际命令传递给脚本的命令行参数。

上一段中描述的解决方案的替代方法是以其各种形式之一使用arch(1)。例如,上面描述的shell脚本可以调用arch -i386 /usr/bin/g++。您还可以将ARCHPREFERENCE环境变量设置为g++:/usr/bin/g++:i386,x86_64,然后调用arch /usr/bin/g++。但请注意,您必须使用arch来调用/usr/bin/g++

答案 1 :(得分:1)

选项1

您可以设置路径,以便首先搜索您的私人bin目录 在这个bin目录中,一个显式调用正确的g ++编译器的g ++脚本将使用相应的标志。

选项2

设置g ++别名。然后将优先使用该命令。设置别名以使用适当的标志运行命令。

注意:这两个假设您正在从命令行构建,因为XCode可能显式执行g ++二进制文件。