我跟着这些说明 https://stackoverflow.com/questions/5333490/how-can-we-restore-ppc-ppc64-as-well-as-full-10-4-10-5-sdk-support-to-xcode-4/5333500#5333500关于如何在升级到 XCode 4 后让 10.4 SDK 与 PPC 一起工作。我可以编译,但在链接时出错。
作为一个额外的问题,我本身没有使用 XCode,而是使用它附带的 gcc 工具链。 (这是使用 makefile 的大型跨平台项目的一部分。)
这是一个示例 makefile:
CXX=g++-4.0
CXXFLAGS=-arch i386 -arch ppc -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4
helloworld: helloworld.o
$(CXX) $^ -o $@ $(CXXFLAGS)
使用 helloworld.cpp:
#include <stdio.h>
int main(void) {
printf("hello world \n");
return 0;
}
这是它的输出:
$ make
g++-4.0 -arch i386 -arch ppc -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4 -c -o helloworld.o helloworld.cpp
g++-4.0 helloworld.o -o helloworld -arch i386 -arch ppc -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4
ld: in /Developer/SDKs/MacOSX10.4u.sdk/usr/lib/crt1.o, in section __TEXT,__text reloc 1: sectionForNum(4) section number not for any section for architecture ppc
collect2: ld returned 1 exit status
lipo: can't open input file: /var/folders/NK/NK2TdejFFfOupEszIr4fG++++TM/-Tmp-//ccryAbut.out (No such file or directory)
make: *** [helloworld] Error 1
顺便说一句,这个 makefile 在 XCode 3 系统上运行良好。
由于您正在使用命令行 海湾合作委员会(Unix开发包),不是GCC/Developer
or /Xcode3
将被使用,但其中之一/usr
,我没有触及我原来的描述。要恢复对命令行 GCC 的 PPC 支持,您至少必须执行 jas 指出的操作在这个答案中 https://stackoverflow.com/questions/5333490/how-can-we-restore-ppc-ppc64-as-well-as-full-10-4-10-5-sdk-support-to-xcode-4/5380923#5380923。或者你改变你的Makefile以使用gcc/Developer
相反(在执行这些命令之前,我在当前工作目录中创建了 helloworld.cpp):
$ /Developer/usr/bin/g++-4.0 -arch i386 -arch ppc -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4 -c -o helloworld.o helloworld.cpp
$ /Developer/usr/bin/g++-4.0 helloworld.o -o helloworld -arch i386 -arch ppc -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4
ld: warning: object file compiled with -mlong-branch which is no longer needed. To remove this warning, recompile without -mlong-branch: /Developer/SDKs/MacOSX10.4u.sdk/usr/lib/crt1.o
ld: warning: object file compiled with -mlong-branch which is no longer needed. To remove this warning, recompile without -mlong-branch: /Xcode3/usr/bin/../lib/gcc/powerpc-apple-darwin10/4.0.1/crt3.o
$ ./helloworld
hello world
您可以安全地忽略这两个警告。不幸的是 GCC 4.0 不支持-mno-long-branch
,这对于避免长分支是必要的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)