gpt4 book ai didi

c++ - 如何在VC++中使用.lib、.dll和.exp文件?

转载 作者:行者123 更新时间:2023-11-30 03:40:54 25 4
gpt4 key购买 nike

我正在尝试用 pardiso 求解线性方程组 。我已经从网站上下载了我可能需要的所有内容(三个文件:.lib、.dll 和 .exp 文件)。

我知道什么是 dll 和 lib,但对 .exp 一无所知。此外,我在互联网上搜索并发现我需要一个头文件。但是 pardiso 没有给我提供 .h 文件。

此外,pardiso 提供了一些我想使用的示例 http://www.pardiso-project.org/manual/pardiso_unsym.cpp .

现在我的问题来了。如何在没有头文件的情况下在 VC++ 2015 中使用 .lib/.dll/.exp 文件?我知道有两种加载.dll文件的方法:动态和静态,但不知道如何实现。

也许我的问题很简单,因为我对 C/C++ 和 dll 了解不多。所以请帮助我。

非常感谢!

最佳答案

我自己没有下载这个包,但我相信你的话,里面没有头文件(从你链接到的例子来看似乎是这样)。

首先,不包含头文件是一种非常奇怪的库分发方式。

浏览Pardiso manual ,看来他们实际上是在其中发布功能接口(interface)。因此,您将如何使用它,即根据该 PDF 中的信息重新创建函数原型(prototype),自己创建头文件。请参阅手册第 7 页的示例,其中列出了两个函数调用:

/* Check license of the solver and initialize the solver */
pardisoinit(pt, &mtype, &solver, iparm, dparm, &error);

/* Solve matrix sytem */
pardiso(pt, &maxfct, &mnum, &mtype, &phase, &n, a, ia, ja,
perm, &nrhs, iparm, &msglvl, b, x, &error, dparm);

在该 PDF 的前面和后面的部分中,给出了这些函数的 Fortran 原型(prototype),并在文本中描述了它们的参数。根据这些信息,您必须重建原型(prototype)。

这些原型(prototype)的替代来源是 Pardiso 提供的示例,其中显然直接包含原型(prototype)。由您来验证复制粘贴它们是否符合许可。

我不明白他们为什么这样做,但他们似乎是这样。

回答.exp文件问题:基本上类似于.lib文件,因为它指定从 .dll 中导出哪些符号.在正常情况下可以安全地忽略它。只有当您有两个以循环方式相互链接的二进制文件(DLL 或 exe)时,您才需要使用一个。

关于c++ - 如何在VC++中使用.lib、.dll和.exp文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37746687/

25 4 0