使用Mac OS X 10.6 Apple更改了g ++的默认目标,因此它生成64位而不是32位代码.我知道我可以在命令行中指定"-arch i386",但有没有办法通过环境变量或类似的方式全局更改默认架构?(我一直在收到链接错误,因为我遇到了真正的问题,需要在我正在移植的项目中指定所需的所有位置.)
小智 2
从来没听说过。根据您使用的配置和构建系统,设置CXXFLAGS、CFLAGS和LDFLAGS环境变量会有所-arch i386帮助。然而,某些配置和构建系统很棘手,设置这些变量可能还不够。
另一种选择是在一个位置提供一个g++(以及需要的朋友)bash 脚本PATH,该脚本位于实际命令之前/usr/bin并调用实际命令以及-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++.