在编译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 函数名