gpt4 book ai didi

c - 当我在我的代码中指定了一个头文件时,为什么我需要在我的 gcc 编译命令中指定一个库?

转载 作者:行者123 更新时间:2023-12-04 07:00:55 25 4
gpt4 key购买 nike

我在我的 *.c 程序中使用 GLFW 库。

    #include <GL/glfw.h>
#include <stdlib.h>

int main(void)
{
int running = GL_TRUE;
int k=0;
.....
...
..

我用来编译的命令是:

gcc test1.c -o test1 -lglfw

我的问题是,因为存在这一行:

#include <GL/glfw.h>

为什么我必须将 -lglfw 传递给 gcc

最佳答案

GL/glfw.h 是一个头文件,它声明了所有的类型、常量、函数,你懂的,它是为了让编译器知道要生成什么代码,而不是提示未知的标识符。 libglfw 是一个包含实际二进制代码的库(或稍后将由动态链接器绑定(bind)的 stub ,或类似的东西),您必须与它链接以使链接器不会提示未解决符号。

header 有可能包含库的实际代码(因此编译器会为使用库的每个翻译单元一遍又一遍地生成二进制代码),它被称为一个只有头文件的库,但在 C 世界中,这样的库不是你经常能找到的东西,而且这个特定的库也不是只有头文件的。

关于c - 当我在我的代码中指定了一个头文件时,为什么我需要在我的 gcc 编译命令中指定一个库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7903388/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com