Ale*_*lli 7 c osx-leopard openmp ubuntu-10.04
我正在看一个开源库(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 Mac的兼容性- 但我并不赞成如何获得OpenMP支持那些PowerPC Mac也是如此,当然我只是喜欢......基于英特尔的那些就足够了! - ).
我完全打算根据需要进行攻击(并且当我让它们正常工作时,在上游提供补丁,因为我已经对我已经入侵的所有开源代码做了很长时间,包括过去的DDS本身;-)在DDS上本身,pydds,以及他们的任何辅助功能,但 ......正因为如此,我只是想避免为了获得OpenMP支持(对于C)而不得不做更多的"初步"黑客攻击我需要它的平台! - ).
那么,有没有(理想情况下! - )我可以apt-get install用于Ubuntu 10.4的任何东西,以及至少在英特尔处理器上用于Mac OS X 10.5的磁盘映像或Darwinport等等,我可以用来开始......?我当然准备建设,从来源,补丁源等,如需要,但我宁愿不具有对,如果我能避免它... ;-).
在Mac OSX 10.5上,看起来-fopenmp不是有效选项(gcc版本4.0.1).
$ gcc -fopenmp foo.c
cc1plus: error: unrecognized command line option "-fopenmp"
Run Code Online (Sandbox Code Playgroud)
但是,我能够在10.6(gcc版本4.2.1)上编译和运行.所以,看起来你唯一的选择是1)升级到10.6,或2)自定义编译一个版本的gcc.
(旁注: 10.5上gcc的手册页没有提到-fopenmp,其中10.6就是这样.)
正如 Garrett Hyde 所建议的,Mac OS 10.5 附带的 gcc 版本太旧,无法支持 OpenMP。但没问题。
安装 MacPorts (http://trac.macports.org/wiki/InstallingMacPorts) - 您需要安装 Xcode,然后安装 X11,如果您不这样做,您仍然可以从 Apple 站点获取这两个版本仍然有您的安装介质。然后,一旦设置了 macports,“sudo port install gcc45”(或至少 44)并等待相当长的时间来构建 gcc 及其所有依赖项。任何 gcc 4.4.x 或更高版本都将具有相当可靠的 OpenMP 3.0 支持。然后你就可以出发了。
正如评论中所指出的,Ubuntu 10.4 附带的库存 gcc 也可以开箱即用。