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

发布于 2024-10-11 08:51:12 字数 376 浏览 7 评论 0原文

正如这篇文章中提出的问题和答案,我需要为 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

As is asked and answered in this post, I needed to give -arch i386 option for SWIG/C# integration.

Do I need to give the option for both compilation/link?

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

櫻之舞 2024-10-18 08:51:12

你尝试过吗?在具有 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)

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

Have you tried it? A simple test with a C program on OS X 10.6 with a 64-bit capable machine suggests that, in general, you do need to specify -arch for both.

$ 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)

Intuitively, the linker does need to know which set of architecture-specific libraries to link with.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文