2013-08-05 44 views
0

我正在使用C++的线性代数的armadillo包,它需要一对lapack和blas .dll才能正常工作。我不太确定我明白什么是静态链接。是否有可能以某种方式将这些.dll的“内部”放在.exe中,因此我不需要将它们复制到构建目录中?如果是这样,我该如何在cmake/qt创建器中设置它?静态链接.dll和cmake/qt创建者?

回答

0

不,您无法静态链接DLL。您必须将这些库构建为静态库并将其链接起来。如何做到这一点取决于图书馆。如果他们使用自动工具,您需要通过

--enable-static --disable-shared 

configure。对于其他任何你需要查阅文档。

+0

对不起,如果这是一个愚蠢的问题/评论,但我已经有了.dll的。你是说我需要下载lapack/blas的源代码并手工编译它们吗? –

+0

@帕特里克我很害怕。除非你找到正确的编译器/二进制文件下载。你为什么认为你需要静态库?将DLL与可执行文件一起移动没有任何问题。它实际上比静态链接更喜欢。 – rubenvb

+0

好的,谢谢你的帮助。我没有对静态库或其他任何东西进行死锁,它似乎比不必担心.dll是否位于正确的文件夹中更容易一些。出于好奇,为什么比静态链接更受欢迎? –