使用Mac OS X 10.6 Apple更改了g ++的默认目标,因此它生成64位而不是32位代码。我知道我可以在命令行中指定“-arch i386”,但有没有办法全局通过环境变量或类似方式更改默认架构? (我不断收到链接错误,因为我在找到所有所需的地方时遇到了真正的问题,我需要在我正在移植的项目中指定架构。)
答案 0 :(得分:2)
不是我知道的。根据配置和&您正在使用的构建系统,将CXXFLAGS
,CFLAGS
和LDFLAGS
环境变量设置为包含-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)
您可以设置路径,以便首先搜索您的私人bin目录 在这个bin目录中,一个显式调用正确的g ++编译器的g ++脚本将使用相应的标志。
设置g ++别名。然后将优先使用该命令。设置别名以使用适当的标志运行命令。
注意:这两个假设您正在从命令行构建,因为XCode可能显式执行g ++二进制文件。