繁体   English   中英

如何在没有 IDE 的情况下包含库

[英]How to include Libraries without an IDE

我刚刚下载了 MingW 编译器和 glfw 以及 glad 库。 我将 Notepad++ 设置为使用 mingW 进行编译,现在我无法弄清楚如何包含上述库。 我必须将.h 文件与我的main.cpp 文件或smth 放在我的文件夹中吗? 我必须将我的库解压缩到哪里。 我完全不知道,并且已经在 web 上搜索了几个小时。

我已经将库解压缩到与 main.cpp 文件相同的文件夹中,然后在 main.cpp 中像这样调用 smth include<librariename/include/lib.h>

首先,考虑 MinGW-w64,它比 MinGW 更新得多,并且支持 Windows 32 位和 64 位。 您可以从https://winlibs.com/获得独立版本,或者您可以使用pacman从 MSYS2 安装它。

要使用库,您需要做几件事:

  • 使用#include <someheader.h>在代码中包含 header 文件。
  • 使用-I ( -Iheaderpath ) 编译器标志告诉 gcc 编译器在哪里可以找到 header 文件。
  • 使用-L ( -Llibrarypath ) linker 标志告诉 gcc linker 在哪里可以找到库文件。
  • 告诉编译器实际使用带有-l ( -llibrary ) linker 标志的库。 这将使 linker 通过在指定库名称前添加lib并在其后添加.a (或在共享构建的情况下为.dll.a )来查找库文件。

因此,例如,如果您有以下文件:

  • /C/Temp/bin/glfw.dll
  • /C/Temp/include/GL/glfw.h
  • /C/Temp/lib/libglfw.a

然后你应该将#include <GL/glfw.h添加到你的代码中并像这样构建(如果你的代码在main.c中):

gcc -c -o main.o main.c -I/C/Temp/include
gcc -o main.exe main.o -L/C/Temp/lib -lglfw

在上面的示例中,第一行是编译器步骤,第二行是 linker 步骤。 您可以像这样组合这两个步骤:

gcc -o main.exe main.c -I/C/Temp/include -L/C/Temp/lib -lglfw

但是随着项目的增长,最好将编译器和 linker 步骤分开。

事实上,随着项目的增长,您可能需要考虑使用一些构建系统(如 make 或 cmake)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM