正如在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
答案 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)
直观地说,链接器确实需要知道要链接哪组特定于体系结构的库。