如何在Windows上包含外部C库

Vic*_*ira 3 c external include

我是C语言的新手,我试图包括一个外部库,而不使用任何IDE,仅在Windows cmd 上使用文本编辑器minGW编译器。在这种情况下,该库是我真正想了解的过程,不仅限于该库libPNG

如果有更好的方法(更简单)来执行此操作,我也想知道。

Mat*_*ieu 5

您有两个部分要注意:

  • 汇编,
  • 链接。

汇编

在编译中,当您将源文件转换为目标文件时,编译器必须知道外部库提供的功能是什么。

您可以声明所使用的每个函数,也可以在代码中包含库头文件:

#incude <library_file.h>
Run Code Online (Sandbox Code Playgroud)

这还不够,您必须告诉编译器在哪里可以找到此文件:

  • -I<path_to_lib_folder>gcc
  • /I<path_to_lib_folder>cl(Visual Studio编译器)一起使用

连结中

在链接过程中,将对象文件和库文件放在一起以构造可执行文件。

您需要告诉链接器

  • 它必须使用哪些文件以及
  • 在哪里可以找到库文件

例如,您告诉链接器要与-l选项一起使用的文件,这些文件将告诉链接器-lfoo搜索libfoo.so lib

注意:通过cl可以告诉您指定要在源代码中直接使用的库#pragma comment (lib, "libfoo.lib")

添加您指定的位置:

  • -L<path_to_lib_folder>gcc
  • /LIBPATH:<path_to_lib_folder>link(Visual Studio链接器)一起使用

您也可以使用动态链接,但让我们从第一步开始。