作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在我的 *.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/
我正在实现谱聚类算法,我必须确保矩阵(拉普拉斯矩阵)是半正定矩阵。 检查矩阵是否为正定矩阵 (PD) 就足够了,因为可以在特征值中看到“半”部分。矩阵非常大(nxn,其中 n 是几千的数量级)所以特征
我是一名优秀的程序员,十分优秀!