如何在Windows上包含外部C库

3
我在学习C语言,尝试使用文本编辑器和minGW编译器在Windows命令行中引入外部库,不使用任何IDE。这个库是libPNG,在这种情况下,我真的很想了解这个过程,不仅仅是针对这个库。如果有更好(更容易)的方法,请告诉我。请注意保留HTML标记。

2
在命令行中添加-l{lib_name}开关。 - Ari0nhh
1个回答

7
你需要处理两个部分:
  • 编译,
  • 链接。

编译

在编译时,将源文件转换为目标文件,你的编译器必须知道外部库提供了哪些函数。

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

#incude <library_file.h>

这还不够,你需要告诉编译器在哪里找到这个文件:

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

链接

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

您需要告诉链接器:

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

您可以使用-l选项告诉链接器要使用哪些文件,例如-lfoo会告诉它搜索libfoo.so库

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

您可以使用以下方式指定位置:

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接