编译Dwm时遭遇drw_create函数类型冲突错误求助
解决Dwm编译时
drw_create类型冲突错误 错误原因
这个错误说明drw_create函数的声明(通常在drw.h头文件中)和实现(drw.c中的代码)参数类型/数量不匹配,C语言要求函数的声明与定义必须完全一致,否则编译器会抛出类型冲突错误。
修复步骤
- 打开Dwm源码目录下的
drw.h文件,找到drw_create的函数声明行。 - 将声明的参数列表、返回值类型,和你提供的
drw.c中的实现完全对齐:
你的drw.c中drw_create的签名是:
确保Drw *drw_create(Display *dpy, int screen, Window root, unsigned int w, unsigned int h, Visual *visual, unsigned int depth, Colormap cmap)drw.h中的声明和上面完全一致——比如如果drw.h里的depth是int而非unsigned int,或者参数顺序不对,就修改成和实现一致的内容。 - 保存
drw.h后重新执行编译命令(通常是make clean && make)。
常见触发场景
- 手动打补丁时,补丁只修改了
drw.c的函数实现,却没同步更新drw.h的函数声明。 - 多个补丁之间存在冲突,不同补丁对
drw_create的签名做了不同修改,导致声明和定义脱节。
内容的提问来源于stack exchange,提问作者t.entomushi
相关产品推荐
相关产品推荐

