如何在C项目中调用.A文件中的方法?

时间:2016-01-28 17:51:38

标签: c visual-studio static-libraries .a

我有.a扩展名的文件,以及代表该文件的file.h .a文件中的函数。

如何从新的C项目中调用.a文件中的函数?

我正在使用Visual Studio,而且我在互联网上发现并且没有 找到了有用的东西。

由于

2 个答案:

答案 0 :(得分:1)

#include 'xxx.h"

然后在代码中,假设ABC是库中的一个函数,只需调用它:    int x = ABC();

您还必须将程序与库链接。

答案 1 :(得分:1)

在Visual Studio项目中使用外部库有两个步骤:您需要同时满足编译器链接器

<强>编译器

这就像在应用程序中包含头文件一样简单;或者将头文件直接放在源树中,或者,如果它存在于另一个目录中,则将其添加到包含路径中(右键单击项目 - > gt;属性,选择“C / C ++”并将目录添加到“其他包含目录”属性。)

您现在应该可以#include "myexternallibrary.h"没有问题,这将允许编译器识别库函数。

<强>链接器

一般来说,为了满足链接器,指令与上面的头文件非常相似:将库二进制文件直接转储到项目树中并通过Properties-&gt; Linker-&gt; Input-&gt;“附加依赖项”引用它“(例如,mylibrary.a);如果库位于项目树外部的目录中,并且您不希望在此属性中包含库的完整路径,则可以将该目录添加到链接器的搜索路径:Properties-&gt; Linker-&gt ; General-&gt;“其他图书馆目录”。

由于您明确声明库文件是 .a 格式,而不是 .lib ,因此下一步是事情变得有点棘手。

.a库文件通常来自MinGW工具链,它可能与Visual Studio工具链正常工作也可能无法正常工作。有关详细信息,请参阅相关信息:From MinGW static library (.a) to Visual Studio static library (.lib)

您可能会很幸运,并且库的标准C运行时的使用在MSVC和MinGW(或生成.a文件的任何工具链)之间是兼容的。

作为旁注,请确保您尝试使用的库实际上不是Linux库,因为 .a 库扩展名也是GCC的默认库(最常见的C) Linux的编译器,它在Windows环境中不兼容。