由于Apple只发布了带有Xcode4的SDK 10.6,因此用Xcode4开发PPC应用程序变得不可能。虽然可以使用Xcode4开发应用程序,也可以在10.5甚至10.4系统上运行(通过选择SDK 10.6,但部署目标10.5或10.4),它们只能在Intel Mac上运行,因为您至少需要SDK 10.5才能运行构建PPC应用程序。
此外,还有一些罕见的情况,您需要在10.6之前构建针对完整平台支持的SDK,例如:如果某些已弃用的功能已完全从10.6 SDK中消失,但您必须使用它,并且在这些情况下动态链接并不总是最佳选择。另外,与早期的SDK相关联,有时可以简化开发,因为它会导致您不应该使用的功能,因为它会导致与早期操作系统版本不兼容,将无法使用,任何尝试使用它无论如何都会立即导致编译器或链接器错误。< / p>
最后但并非最不重要的是Apple还从Xcode4中删除了GCC 4.0支持,这可能是某些软件正确构建所必需的,Apple在使用SDK 10.4时从未允许使用GCC 4.2编译软件,尽管我几乎不相信这一点在使用GCC 4.2和SDK 10.6构建的所有软件也可以在Mac OS 10.4上运行时,只要部署目标设置正确并且没有使用MacOS 10.4下无法使用的功能,就会出现任何问题。< / p>
当然,你总是可以在Xcode4旁边并行安装Xcode3,但这意味着你必须放弃Xcode4的所有(伟大的?)新功能,并继续使用过时的Xcode3 IDE。如果您还可以在同一个IDE中管理所有旧项目,并且可以使用任何新功能,那肯定会好得多。并非所有项目都可以在可预见的将来制作10.6或英特尔。此外,我严格反对在早期实际需要之前取消对旧平台的支持。
我们可以将此功能恢复为Xcode4吗?
答案 0 :(得分:111)
答案 1 :(得分:15)
仅使用Xcode4的另一种简单方法,不再需要Xcode3。
$ sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/libexec/gcc/darwin/ppc /Developer/usr/libexec/gcc/darwin
$ sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/libexec/gcc/darwin/ppc /usr/libexec/gcc/darwin
<强>编辑:强>
对于Xcode 4.1,
sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/libexec/gcc/darwin/ppc /Developer/usr/libexec/gcc/darwin
sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/libexec/gcc/darwin/ppc /usr/libexec/gcc/darwin
sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/powerpc-apple-darwin10-cpp-4.2.1 /usr/bin/powerpc-apple-darwin11-cpp-4.2.1
sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/powerpc-apple-darwin10-gcc-4.2.1 /usr/bin/powerpc-apple-darwin11-gcc-4.2.1
sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/powerpc-apple-darwin10-g++-4.2.1 /usr/bin/powerpc-apple-darwin11-g++-4.2.1
sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/powerpc-apple-darwin10-cpp-4.2.1 /Developer/usr/bin/powerpc-apple-darwin11-cpp-4.2.1
sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/powerpc-apple-darwin10-gcc-4.2.1 /Developer/usr/bin/powerpc-apple-darwin11-gcc-4.2.1
sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/powerpc-apple-darwin10-g++-4.2.1 /Developer/usr/bin/powerpc-apple-darwin11-g++-4.2.1
sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/lib/gcc/powerpc-apple-darwin10 /Developer/SDKs/MacOSX10.6.sdk/usr/lib/gcc
您只能将Gcc-4.2用于PowerPC。并且“-isysroot /Developer/SDKs/MacOSX10.6.sdk”选项是必需的,因为10.7 SDK不再支持PowerPC。
答案 2 :(得分:8)
我收集了此页面中的所有信息,Mac OS X Hints,splhack.org以及此处引用的其他来源,并汇总了一组BASH脚本,可自动恢复PPC和GCC的过程4.0支持使用XCode 3安装或只使用XCode 4自己的iPhone平台文件。
一如既往,谨慎使用!并请提供任何修复或改进。这些脚本仅在我自己的系统上进行了测试。
您可以从GitHub下载它们:
答案 3 :(得分:4)
如果你想让gcc从命令行工作,(以及上面的)你还需要:
cd /usr/libexec/gcc/powerpc-apple-darwin10/4.2.1
sudo mv as as.bak
sudo ln -s /Xcode3/usr/bin/as .
答案 4 :(得分:3)
这仍适用于AppStore中的Xcode 4.3.2 - 应用程序包中一切都是自包含的版本。与原始提示一样,首先安装Xcode 3.2.6 *然后从AppStore下载Xcode 4。 然后执行以下符号链接魔术:
cd /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/
ln -s /Developer/Xcode3.2.6/SDKs/MacOSX10.5.sdk .
cd /Applications/Xcode.app/Contents/Developer/usr/llvm-gcc-4.2/bin/
ln -s /Developer/Xcode3.2.5/usr/llvm-gcc-4.2/bin/powerpc-apple-darwin10-llvm-g* .
mv powerpc-apple-darwin10-llvm-gcc-4.2 powerpc-apple-darwin11-llvm-gcc-4.2
mv powerpc-apple-darwin10-llvm-g++-4.2 powerpc-apple-darwin11-llvm-g++-4.2
最后两行在符号链接中将darwin10重命名为darwin11 - 我猜测OS X的未来版本将需要根据需要进行更新。
要在Lion上安装Xcode 3.2.x,请安装Xcode磁盘映像,打开终端,输入命令(如果您更改了默认shell,则使用bash或等效命令):
导出COMMAND_LINE_INSTALL = 1 打开“/ Volumes / Xcode和iOS SDK / Xcode和iOS SDK.mpkg”
您还需要将时钟设置回2012年3月31日之前的日期,否则安全证书将在安装期间无法通过验证。安装后你可以安全地再次更改日期!
答案 5 :(得分:2)
如果有人需要在Xcode 4.3和4.5中恢复旧的SDK和PPC编译器,这是我提出的脚本。请注意,您需要在脚本开头设置Xcode应用程序包的路径和Xcode 3.2.6安装的路径。
#!/bin/bash
XCODE="/Applications/Xcode45-DP1.app"
XCODE3="/Xcode3"
# restore SDKs
cd "$XCODE/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs"
sudo ln -s "$XCODE3/SDKs/MacOSX10.4u.sdk" .
sudo ln -s "$XCODE3/SDKs/MacOSX10.5.sdk" .
sudo ln -s "$XCODE3/SDKs/MacOSX10.6.sdk" .
# restore gcc 4.0
cd "$XCODE/Contents/Developer/usr/bin"
sudo ln -s "$XCODE3/usr/bin/"*4.0* .
sudo ln -s "powerpc-apple-darwin10-g++-4.0.1" "powerpc-apple-darwin11-g++-4.0.1"
sudo ln -s "powerpc-apple-darwin10-gcc-4.0.1" "powerpc-apple-darwin11-gcc-4.0.1"
# restore Xcode option
cd "$XCODE/Contents/PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins"
sudo ln -s "$XCODE3/Library/Xcode/Plug-ins/GCC 4.0.xcplugin" .
如果您使用的是Xcode 4.3,则不需要使用符号链接10.6 SDK。
此脚本也不会恢复gcc 4.2,因为存在很多文件名冲突。我的目标是恢复PPC编译器,4.0对我来说已经足够了。
答案 6 :(得分:2)
FrédéricDevernay有一个名为 xcodelegacy 的GitHub项目,它在Xcode 5.1.1上对我来说非常棒,并且需要很少的工作才能实现,只需要下载一些。
使用他的项目,我设法创建了包含使用GCC 4.0的10.4 SDK编译的ppc和i386体系结构的通用二进制文件,所有这些都来自在Yosemite上运行的Xcode 5.1.1。
我已经证实自己创建的通用二进制文件在10.5 Leopard和Yosemite本身上运行良好。
主页:http://devernay.free.fr/hacks/xcodelegacy
Git hub项目:https://github.com/devernay/xcodelegacy
答案 7 :(得分:1)
有一个包只是将这些文件安装到XCode 4实现中会很有用。 (或tarball)。
仅供参考:Xcode3的3.2.6不包含与ppc架构相同的内容。但是我在计算机上备份了Leopard。所以我复制了那个,似乎有效。 (使用/ usr / libexec / gcc / darwin / ppc / as)。
考虑到gcc和as都是开源的,唯一可能不可再发行的东西是xcode插件和10.4 SDK吗?