gpt4 book ai didi

c++ - 是否可以在 OSX 10.6 上构建在其他 OSX 10.6 系统上运行的 32 位应用程序?

转载 作者:行者123 更新时间:2023-11-30 00:58:15 27 4
gpt4 key购买 nike

在 OSX 10.6 上使用 make 构建 C++ 项目时,我确定预处理器定义 __LP64__ 似乎始终自动由编译器(即,它没有在任何头文件中定义)(参见 Where is __LP64__ defined for default builds of C++ applications on OSX 10.6? )。这就引出了一个问题:是否有可能在 OSX 10.6 上构建一个面向(并运行)另一个 OSX 10.6 系统的 32 位应用程序?

我听说 OSX 10.6始终是 64 位操作系统 - 甚至不可能将 OSX 10.6 作为 32 位操作系统运行。如果是这种情况,那么在 OSX 10.6 上构建可在另一个 OSX 10.6 系统上运行的 32 位应用程序是不可能的。

我需要知道这一点,以便知道我是否正在构建 64 位应用程序(我一直在尝试将当前项目构建为 32 位应用程序,因为相应的 Windows 版本也在构建中作为 32 位 - 但也许我需要启用所有 64 位标志并将此应用程序的 OSX 10.6 版本构建为成熟的 64 位应用程序)。

最佳答案

是的,完全有可能做到这一点。一个有限的演示:

$ tar -xf Packages/range-1.14.tgz
$ cd range-1.14
$ ls
COPYING Makefile README gpl-3.0.txt range.c range.mk stderr.c stderr.h
$ rmk CC='gcc -m32'
gcc -m32 -g -c stderr.c
gcc -m32 -g -c range.c
gcc -m32 -o range -g stderr.o range.o
$ file range
range: Mach-O executable i386
$ rmk -u CC='gcc -m64'
gcc -m64 -g -c stderr.c
gcc -m64 -g -c range.c
gcc -m64 -o range -g stderr.o range.o
$ file range
range: Mach-O 64-bit executable x86_64
$

rmk -u 相当于 (GNU) make -B。这个GCC是我自制的4.6.0。您可以使用 Apple 提供的 GCC 版本执行更多操作,例如交叉编译和/或通用构建。

关于c++ - 是否可以在 OSX 10.6 上构建在其他 OSX 10.6 系统上运行的 32 位应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6721097/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com