我是否需要为编译/链接提供选项(-arch i386)?

时间:2011-01-12 17:40:03

标签: macos shared-libraries swig

正如在this post中提出并回答的那样,我需要为SWIG / C#集成提供-arch i386选项。

我是否需要为编译/链接提供选项?

g++ -c  -arch i386   example.cxx example_wrap.cxx 
g++ -arch i386 -bundle -undefined suppress -flat_namespace   example.o example_wrap.o    -o libexample.dylib

1 个答案:

答案 0 :(得分:1)

你试过吗?使用支持64位的机器在OS X 10.6上使用C程序进行的简单测试表明,通常,您需要为两者指定-arch

$ gcc -arch i386 -o x.o x.c
$ gcc x.o -o x.dylib
ld: warning: in x.o, file was built for i386 which is not the architecture being linked (x86_64)

直观地说,链接器确实需要知道要链接哪组特定于体系结构的库。