如何在Windows上包含外部C库
我是C的新手,我试图在不使用任何IDE的情况下包含外部库,只使用文本编辑器和windows cmd上的minGW编译器。 在这种情况下,库是libPNG
,我真的想了解该过程如何不仅适用于此库 。
如果有更好的方法(也更容易)做到这一点,我也想知道。
你有两个部分需要照顾:
- 汇编,
- 链接。
汇编
在编译中,当您在目标文件中转换源文件时,编译器必须知道外部库提供的function是什么。
您可以声明您使用的每个函数,也可以在代码中包含库头文件:
#incude
这还不够,您必须告诉编译器它可以在哪里找到这个文件:
-
-I
与gcc
-
/I
withcl
(visual studio编译器)
链接
在链接过程中,将对象和库文件放在一起以构造可执行文件。
你需要告诉链接器
- 它必须使用哪些文件
- 在哪里可以找到库文件
您告诉链接器使用-l
选项的文件,例如, -lfoo
将告诉它搜索libfoo.so lib
注意:使用cl
您可以使用#pragma comment (lib, "libfoo.lib")
指定在源代码中直接使用哪个库
添加你指定的位置:
-
-L
与gcc
-
/LIBPATH:
带有link
/LIBPATH:
(可视工作室链接器)
您也可以使用动态链接,但让我们从第一步开始。