linux下编译时,通过头文件名,判断链接哪个动态库

在编译c语言程序时,经常会遇到添加了系统头文件,但是编译时报错,找不到某个系统函数的定义。

原因:编译时没有制定链接响应的动态库。

1.dpkg -S <头文件>

判断某个头文件属于哪个包


2.dpkg -L libx11-dev

查看libx11-dev包中包含哪些文件


里面包含了libX11.so这个动态库,就是我们链接所需要的。

gcc test.c -o test -lX11  

这样就能编译通过了。

※如果某个包中包含多个so文件,可以通过下面的命令,查看哪个包中,包含相应的函数

nm -Do xxx.so | grep 函数名

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。