如何在Windows上包含外部C库

我是C的新手,我试图在使用任何IDE的情况下包含外部库,只使用文本编辑器windows cmd上的minGW编译器。 在这种情况下,库是libPNG ,我真的想了解该过程如何不仅适用于此库

如果有更好的方法(也更容易)做到这一点,我也想知道。

你有两个部分需要照顾:

  • 汇编,
  • 链接。

汇编

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

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

 #incude  

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

  • -Igcc
  • /I with cl (visual studio编译器)

链接

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

你需要告诉链接器

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

您告诉链接器使用-l选项的文件,例如, -lfoo将告诉它搜索libfoo.so lib

注意:使用cl您可以使用#pragma comment (lib, "libfoo.lib")指定在源代码中直接使用哪个库

添加你指定的位置:

  • -Lgcc
  • /LIBPATH:带有link /LIBPATH: (可视工作室链接器)

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