c - 如何链接 C 包以便在程序中使用它们?

标签 c dll package mingw

我在 Windows 10 上使用 Netbeans 和 MinGW 编译器。我已经下载了名为 libjpg 的库的源文件,但我在互联网上找不到有关如何链接 C 包以便您使用它们的具体步骤。

我知道在 Linux 中你可以使用...构建它

./configure
make
make install

如何在 Windows 上使用源文件执行此操作?

最佳答案

C 本身没有办法做到这一点; C 是在包流行之前创建的。

请注意,./configuremakemake install 系统与 C 完全无关,除了它经常用于用 C 编写的程序。

一般来说,您需要告诉编译器在库中查找包含文件,并且需要告诉链接器在最终程序中包含该库。大多数构建系统会同时执行许多其他操作,但这些只是最基本的功能。执行此操作的方法取决于编译器 - 我看到您正在使用 MinGW(GCC 的一个端口)。

当您使用 GCC 编译程序时,您需要添加 -I (这是“include”的大写“i”),后跟要查找包含文件的路径。在库中查找包含文件的文件夹。假设它位于当前目录的 libjpg/include 中,那么您将添加 -Ilibjpg/include。 (我假设您已经知道绝对路径和相对路径如何工作)

当您链接程序时(可能使用与编译它相同的命令,具体取决于您的操作方式),您需要使用 -L - 它的工作方式类似于 - I 但对于库文件(.a 和/或 .so 文件)。您还需要使用 -l (小写“l”表示“库”)告诉它实际使用该库。在 -l 之后输入库的名称,开头不带 lib 且不带扩展名,因此如果它是 libjpg.so 那么您会使用选项-ljpg

安装包会将包含文件和库文件放在通常的位置,这样您就不需要使用-I-L。如果您愿意,您可以自己执行此操作,即使该软件包实际上没有安装程序。我不确定 MinGW 的“常用位置”是什么。

关于c - 如何链接 C 包以便在程序中使用它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33622129/

相关文章:

go - 如何临时从基础 github repo 导入到它的 fork?

在 glInterleavedArrays 之后调用 glDrawElements 不起作用

java - tesseract/tesjeract 在实例化时导致应用程序崩溃

java - 无法加载 JNI 共享库 "C:\Windows\system32\..\jre\bin\client\jvm.dll\"ECLIPSE

c++ - 如何让 DLL 项目更新 visual studio 中 C++ 项目中的每个构建

java - 删除示例包仍然出现编译错误

python - 如何打包cython模块?

c - 超越 C telnet 服务器中的文本消息

c++ - C libcurl,限制下载速度 - cpu 使用率达到 100%

c - 编译C程序时出错