4

我必须使用 LU 分解来为 C 中的一些数据(模拟)拟合一个简单的模型。我需要做的一个例子是这里

但是,我遇到了一个更基本的问题:如何在 C 中安装包并在我的代码中调用它们?

我是 C 的新手,我习惯了 R。但是我有这个评估来做一些关于矩阵反转、LU 分解的测试,教授建议使用 Lapack 来简单的事情(因此,我不需要自己编写代码LU分解等)。但是我不知道如何安装包并在我的代码中调用它,以便使用 LAPACK 的功能。

我有一个 Windows 7 64 位,我正在使用编译器代码块 8.02

谢谢你的帮助。

4

3 回答 3

7

通常,您不会在这个意义上“安装”C 库。通常,在 Windows 中,您拥有三种类型的文件。头文件(通常以 .h 结尾)、动态库、.dll 以及很可能的一些链接器文件(通常是 .lib、.a 或其他文件)。链接器和编译器需要能够在某处找到这些文件。通常您设置包含目录路径和库目录路径。

例如,假设您下载了一个名为 foo 的库,并将其解压缩到 C:\foo。在该文件夹中libfoo.afoo.dllfoo.h驻留。在 Code::Blocks 中,您必须指向包含目录路径C:\foo和库路径,C:\foo以便链接器和编译器知道在哪里查找这些文件。由于您正在链接 foo 库,因此您还必须-lfoo在链接器命令行中设置或类似的东西。这是 GCC 语法,但我认为 Code::Blocks 无论如何都会在幕后使用 GCC 编译器。

在 C 代码中你可以#include <foo.h>,编译器会为你找到它。

于 2011-01-19T16:23:32.050 回答
2

您需要安装该库,它实际上可能为此提供了一个工具。检查他们的文档(例如文件INSTALLREADME在他们的分发源中)。如果该库仅使用标头,您可能只需将其标头复制到系统上的某个目录,但他们的构建系统可能能够为您做到这一点。

完成后,您将告诉您的 IDE 在哪里寻找源代码,以及该库是否不仅使用标头来链接实际的库文件。请参阅Code::Blocks Wiki中的文档,了解如何针对某些示例案例完成此操作并适应您的库。

于 2011-01-19T16:19:48.177 回答
2

在您的情况下,最简单的方法是安装Cygwin。您可以使用 setup.exe 安装程序来安装 GCC 和 LAPACK 库。当您想使用 LAPACK 库时,您将在 GCC 命令行中添加 -llapack 选项。

于 2011-01-19T22:25:39.210 回答