2009-10-22 143 views
9

我在我的macbook pro(mac os x 10.6)上编译出色的Contiki OS时遇到了很多麻烦。 Contiki实际上使用了很多GNU特有的GCC,AR,LD等特性和选项。所以我通过macports安装了这些实用程序,但它看起来像“port install binutils”不能安装GNU ld,是吗?如何在mac os x 10.6上安装gnu ld?

所以,问题是,我如何获得我的Mac上的GNU ID?是否有一个简单的替代方法(即wget, configure, make, make install方式)?

+0

“硬”的方式不是那么难......(除非出现某种错误) – 2009-10-24 17:56:20

+0

当然;但在这种情况下,我非常怀疑我会得到比macport更好的结果(因为macports * *“wget && configure && make”) – Gyom 2009-10-24 18:25:30

+0

相关:http://stackoverflow.com/questions/23290431/ld -linking-error-while-compiling-z3 – 2015-12-04 07:49:22

回答

10

据我所知,GNU binutils不支持Mach-O格式。 documentation没有提及它,并且一些Google搜索出现了一些recent messages,表明它不被支持。

现在,您提到了Contiki操作系统,它在我看来就像一个嵌入式操作系统。您是否需要编译为本地可执行文件,或者您是否想要为其他环境进行交叉编译? MacPorts确实包含用于交叉编译的several ports of binutils

+0

确实;当然,我的长期目标是交叉编译。但起初我想尝试“本地平台”目标,以便熟悉编程模型等等。然而,它看起来越来越像“本地”的意思是“GNU/linux”,只有“GNU/linux”:-( – Gyom 2009-10-24 18:28:34

+0

看起来你是对的;它们似乎需要一个GNU工具链,这通常意味着Linux或Cygwin。您可以随时将Linux安装到虚拟机上,我已经将Ubuntu服务器版本(因为它比桌面版本更轻,不包括所有桌面软件)安装到VirtualBox VM http://www.virtualbox上。 org /快速简单的免费Linux虚拟机 – 2009-10-24 19:47:17

+0

是的,感谢您的帮助,我现在开始在虚拟机中使用debian,毕竟,手头上还有一个linux环境也许会很酷。 – Gyom 2009-10-26 13:49:39

2
 
$ port info binutils 
(…) Tools are prefixed with g to avoid conflicts with original tools. (…) 
+0

好的,但: %ls/opt/local/var/macports/software/binutils的/ 2.19_0的/ opt/local/bin目录 gaddr2line \t GNM \t \t granlib \t \t GString的 噶尔\t \t gobjcopy \t greadelf gstrip GC++ filt的\t gobjdump \t gsize – Gyom 2009-10-23 12:36:57

+0

%ls/opt/local/bin/gld ls:/ opt/local/bin/gld:没有这样的文件或目录 – Gyom 2009-10-23 12:37:35

+1

长话短说,一切都有*但* ld,因此我的问题。 – Gyom 2009-10-23 12:38:11

0

通常,您可以直接使用gcc或g ++链接,并且不需要gld。尝试将LD设置为指向编译器,看看它是否不适合你。

+2

当然; “gcc -l”会直接为你调用/ usr/bin/ld :-) – Gyom 2009-10-24 18:33:31

+0

那么这个功能不如我想象的那么有用...... – 2009-10-24 20:25:35