Ubuntu下make安装C语言wsserver库后ws.h头文件找不到的问题
问题原因及解决方案
核心原因
你安装wsserver库后,头文件ws.h并未直接存放在/usr/local/include目录下,而是位于其子目录wsserver中(从ls /usr/local/include/的结果可确认存在wsserver文件夹)。编译器通过-I/usr/local/include指定的搜索路径仅会查找该目录下的直接文件,不会递归遍历子目录,因此无法定位到ws.h。
解决办法
方法1:修改代码中的头文件包含语句
将代码里的:
#include <ws.h>
修改为:
#include <wsserver/ws.h>
这样编译器会自动在/usr/local/include/wsserver路径下找到目标头文件。
方法2:调整编译命令的头文件搜索路径
在编译时,直接将-I指定到wsserver子目录:
gcc -I/usr/local/include/wsserver -L/usr/local/lib64 main.c -lws
注意:务必将
main.c放在-lws之前——gcc的链接规则要求被编译的源文件在前,依赖的库文件在后,否则可能出现后续链接错误。
另外,你也可以检查/usr/local/lib64/pkgconfig下的.pc配置文件,确认其中的头文件路径定义是否正确,后续若使用pkg-config工具可进一步简化编译命令,避免手动指定路径的麻烦。
内容的提问来源于stack exchange,提问作者Miles Hua
相关产品推荐
相关产品推荐

