macos - macosx-version-min 是什么意思?

标签 macos g++ 32bit-64bit

当我通过编译器标志 -mmacosx-version-min=10.5 , 这是什么意思?我认为这意味着结果二进制是 x86,而不是 ppc,但它是 32 位还是 64 位?我在雪豹上编译,所以默认输出二进制是 64 位。我没有路过-universal ,我认为它不是 32 位-64 位通用二进制文件。

最佳答案

此选项将由放置在标题中的各种可用性宏使用。这意味着您可能需要最低版本的操作系统,即使您有更新的 SDK(即使用 10.6 SDK 定位 10.5)。在以 10.5 为目标时使用 10.6 API 将触发警告,并且该 API 将与weak_import 属性链接。

大多数 Apple 的 API header 都包含每个类、方法、函数或枚举的可用性宏,以便为每个类声明:

  • 支持的最低操作系统
  • 弃用
  • 不可用
  • ...

  • 宏看起来像:
  • AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER
  • AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED
  • ...

  • 至于架构,它只取决于 SDK 二进制文件中可用的架构。例如,对于 10.5 SDK,您可以针对四种架构(Intel/32bits、PowerPC/32bits、Intel/64bits、PowerPC 64bits),而对于 10.6 SDK,您只能针对三种架构(Intel/32bits、PowerPC/32bits、英特尔/64 位)。

    当您使用 Snow Leopard 时,您可以非常简单地通过传递这样的架构选项来定位 i386(Intel/32bits)、ppc(PowerPC/32bits)或 x86_64(Intel/64bits):
    gcc -arch i386
    

    或者像这样(对于基于配置的项目):
    CFLAGS="-arch i386" LDFLAGS="-arch i386" ./configure
    

    关于macos - macosx-version-min 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2923502/

    相关文章:

    c++ - [linux][ompl]添加库路径

    c++ - 同一程序在 Windows 和 Linux 上的行为不同

    c++ - 一般 C++ Linux 到 Windows 移植问题

    c++ - 将非托管 C++ 代码从 32 位转换为 64 位

    asp.net - Windows 2008 Server x64 上的 IIS 7.5 ASP 32 位应用程序池上为 500.0 0x800700c1

    c# - 我应该在具有固定类型大小的语言(如 Java、C#)中的 64 位上使用 'long' 而不是 'int'

    ruby-on-rails - 如何使用 PSequel GUI 在 Mac 上连接到本地主机 PostgreSQL?

    java - 德语元音变音字符的 mac java 编码

    macos - 无法连接到mongodb errno :61 Connection refused

    c++ - 如何以编程方式在 Windows、Mac 和 Ubuntu 中设置音量?