[英]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.