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

标签 c++ macos

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

最佳答案

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

另一种选择是在 /usr/bin 之前的 PATH 位置提供一个 g++(以及需要的 friend )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++

关于c++ - 更改 Mac OS X 上的默认 g++ 架构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4593151/

相关文章:

c++ - 什么时候需要从函数返回引用?

c++ - 如何过早销毁智能指针

c++ - 为 std::future 删除

iphone - iTunes 连接 API

swift - NSLayoutManager 在 NSTextView 中为 mousePosition 返回错误的 glyphIndex

c++ - 警告 : too many arguments for format [-Wformat-extra-args]

c++ - C++ 中的可扩展第一人称射击游戏?

macos - EventMonitor .LeftMouseDownMask 表达式类型不明确,没有更多上下文

java - Mac OS X 中的哪些设置会影响 Java 中的 `Locale` 和 `Calendar`?

xcode - 没有这样的模块 'UIKit'