我正在寻找一个开源库(DDS,一个双虚拟桥解算器),它在最新版本(2.1.1)中添加了一些非常有用的多任务功能,需要一个Windows系统或 OpenMP(事实上,如果没有完整的OpenMP支持,最新版本甚至根本不会在非Windows系统上编译! - )。 Ubuntu 10.4有一个可用于旧版本(1.1.9)的软件包,其中包括库的Python接口(pydds
)。我很久以前就为上游做出了贡献,但我真的很想使用(并提供一个Python接口;-)新功能...但是,为此,我需要一个C编译器和支持库,它将为我提供OpenMP功能...!
另外,我需要在Ubuntu 10.4 和上使用它们仍然运行Mac OS X 10.5的旧版Intel Mac(以避免失去与我的旧版 PowerPC Macs的兼容性 - 但我并没有想要在这些PowerPC Mac上获得OpenMP支持的方式,当然我只是喜欢......基于Intel的产品就足够了! - 。)。
我完全计划根据需要进行黑客攻击(当我让它们正常工作时,当然会向上游提供补丁,因为我已经对我已经攻击的所有开源代码做了很长时间,包括过去的DDS本身; - )关于DDS本身,pydds以及它们的任何辅助功能,但是 ......正因为如此,我只是想避免为了获得OpenMP而做更多的“初步”黑客攻击在我需要的平台上首先支持(对于C)! - )。
那么,是否(理想情况下! - )任何我只能apt-get install
用于Ubuntu 10.4,以及磁盘映像或Darwinport或任何Mac OS X 10.5,至少在英特尔处理器上,我可以用来获取开始吧...?我当然准备根据需要从源代码,补丁源等构建,但我宁愿不拥有,如果我可以避免它...... ;-)
答案 0 :(得分:5)
在Mac OSX 10.5上,看起来 -fopenmp 不是有效选项(gcc版本4.0.1)。
$ gcc -fopenmp foo.c
cc1plus: error: unrecognized command line option "-fopenmp"
但是,我能够在10.6(gcc版本4.2.1)上编译和运行。所以,看起来你唯一的选择是1)升级到10.6,或2)自定义编译gcc版本。
(附注:10.5上的gcc手册页没有提到 -fopenmp ,其中10.6就是这样。)
答案 1 :(得分:3)
根据Garrett Hyde的建议,Mac OS 10.5附带的gcc版本太旧,无法支持OpenMP。但没问题。
安装MacPorts(http://trac.macports.org/wiki/InstallingMacPorts) - 您需要安装Xcode,然后安装X11,如果您仍然可以从Apple网站获取这两个Xcode还没有安装媒体。然后一旦设置了macports,“sudo port install gcc45”(或至少44)并等待一段时间,以便构建gcc及其所有依赖项。任何gcc 4.4.x或更高版本都将拥有非常可靠的OpenMP 3.0支持。然后你应该好好去。
正如评论中指出的那样,Ubuntu 10.4附带的股票gcc也可以开箱即用。