10

我正在查看一个开源库(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 的旧英特尔 Mac 上都需要它们(以避免失去与我的旧PowerPC Mac 的兼容性——但我并不坚持获得 OpenMP 支持的方法那些 PowerPC Mac 也是如此,虽然我当然很想……基于英特尔的 Mac 就足够了!-)。

我完全计划尽可能多地破解(当然,一旦我让它们工作,我就会在上游贡献补丁,就像我长期以来对我破解过的所有开源代码所做的那样,包括过去的 DDS 本身;-) 在 DDS本身,pydds,以及它们的任何辅助功能,但是......正因为如此,我只是想避免做更多的“初步”黑客攻击来获得 OpenMP 支持(对于 C)放在首位我需要它的平台!-)。

那么,是否有(理想情况下!-)我可以apt-get install用于 Ubuntu 10.4 的任何东西,以及磁盘映像或 Darwinport 或至少在英特尔处理器上用于 Mac OS X 10.5 的任何东西,我可以用来开始......?我当然准备好根据需要构建源代码、修补源代码等,但如果可以避免的话,我宁愿不必这样做......;-)。

4

2 回答 2

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 则有。)

于 2010-10-22T02:18:14.800 回答
3

正如 Garrett Hyde 所建议的,Mac OS 10.5 附带的 gcc 版本太旧,无法支持 OpenMP。但没问题。

安装 MacPorts (http://trac.macports.org/wiki/InstallingMacPorts) - 你需要安装 Xcode,然后是 X11,如果你不安装,这两者你仍然可以从苹果网站获得仍然有您的安装媒体。然后,一旦设置了 macports,“sudo port install gcc45”(或至少 44 个)并等待相当长的时间让它构建 gcc 及其所有依赖项。任何 gcc 4.4.x 或更高版本都将具有相当可靠的 OpenMP 3.0 支持。然后你应该很高兴。

正如评论中所指出的,Ubuntu 10.4 附带的库存 gcc 也可以开箱即用。

于 2010-10-22T11:39:32.543 回答