2011-02-11 39 views
10

有没有可以在OMF对象格式中为Windows预编译BLAS和LAPACK二进制文件的地方?我想将一些D语言代码链接到这些代码。我知道我在哪里可以得到the relevant libs in COFF format。我也知道objconv工具,它将COFF转换为OMF,但由于我不完全理解的原因,这似乎不适用于实践。这些似乎与符号中的下划线有关,尽管我尝试了几乎所有处理这些问题的设置,但似乎没有任何工作。预编译的Windows OMF BLAS/LAPACK?

另外,有谁知道如何转换the reference binaries to OMF,使他们将实际链接到DMD编译的代码?作为最后的手段,有没有人知道如何让CLAPACK,CBLAS和F2CLIB与DMC一起构建?这些构建过程似乎完全针对GCC工具链。

+2

在我以前的答案中链接的multiarray包http://stackoverflow.com/questions/4937699/fast-linear-system-solver-for-d/4942608#4942608附带一个dll +包装(见http:// dsource.org/projects/multiarray/browser/downloads/win32-deps)应该工作(我还没有测试过)。如果这不起作用,让我知道,我会尝试建立一个。顺便说一句,如果您是LAPACK的新手,那么有两个陷阱:1)除非LAPACK分发包含C封装,否则所有Fortran函数都会引用所有参数(甚至整数)。 2)Fortran数组是列主要布局,而C数组是行主要的。 – stephan 2011-02-14 09:01:26

+2

@stephan:你应该把它当作答案。我会接受它,因为我在你发布的同一时间发现了同样的东西。就Fortran而言,我并不打算直接使用BLAS和LAPACK。我将使用Lars Kyllingstad的SciD库,它提供了漂亮的包装器。 – dsimcha 2011-02-14 16:14:27

回答

-1

“...接缝完全针对GCC工具链。”

这是一个低估。 Blas经过高度“优化”,可以在一个特定的gcc版本2.4.3下进行编译。

从未优化版本的源代码开始,使用OpenWatcom工具链进行编译可能会生成32位OMF,但我担心会涉及到很多foo,结果会是死的慢代码。