C I';我在修补DWM时遇到错误,这里不允许有关于函数定义的内容

C I';我在修补DWM时遇到错误,这里不允许有关于函数定义的内容,c,debugging,unix,freebsd,x-dwm,C,Debugging,Unix,Freebsd,X Dwm,我正试图在dwm中获得一个systray。DWM是suckless的X:动态窗口管理器。要配置dwm,您需要自己手动添加补丁。我制作了一个包含所有文件的git repo,位于,但问题似乎只与dwm.c文件有关。同样在我添加的git回购中,我包含了我添加的所有补丁,所以我没有针对股票dwm进行补丁。我也是在FreeBSD上编译的,但我认为操作系统与这个问题无关。先谢谢你 我不知道关于C编程的第一件事,因此我在这里问这个问题。从我所读到的关于这个错误的信息来看,它似乎表明我在某个地方缺少了一个括号,

我正试图在dwm中获得一个systray。DWM是suckless的X:动态窗口管理器。要配置dwm,您需要自己手动添加补丁。我制作了一个包含所有文件的git repo,位于,但问题似乎只与dwm.c文件有关。同样在我添加的git回购中,我包含了我添加的所有补丁,所以我没有针对股票dwm进行补丁。我也是在FreeBSD上编译的,但我认为操作系统与这个问题无关。先谢谢你

我不知道关于C编程的第一件事,因此我在这里问这个问题。从我所读到的关于这个错误的信息来看,它似乎表明我在某个地方缺少了一个括号,但在它指向我的那条线上,一切似乎都是井然有序的

下面是确切的错误:

rm-f dwm drw.o dwm.o util.o dwm-6.2.tar.gz
dwm构建选项:
CFLAGS=-std=c99-pedantic-Wall-Wno不推荐的声明-Os-g-I/usr/local/include-I/usr/local/include/freetype2-D_DEFAULT_SOURCE-D_BSD_SOURCE-D_POSIX_C_SOURCE=2-DVERSION=“6.2”-DXINERAMA
LDFLAGS=-L/usr/local/lib-lX11-lXinerama-lfontconfig-lXft-lXrender
CC=CC
cc-c-std=c99-pedantic-Wall-Wno不推荐的声明-Os-g-I/usr/local/include-I/usr/local/include/freetype2-D_DEFAULT_SOURCE-D_BSD_SOURCE-D_POSIX_c_SOURCE=2-DVERSION=\'6.2\'-DXINERAMA drw.c
cc-c-std=c99-pedantic-Wall-Wno不推荐的声明-Os-g-I/usr/local/include-I/usr/local/include/freetype2-D_DEFAULT_SOURCE-D_BSD_SOURCE-D_POSIX_c_SOURCE=2-DVERSION=\'6.2\'-DXINERAMA dwm.c
dwm.c:796:10:警告:隐式声明库函数“snprintf”,类型为“int(char*,unsigned long,const char*,…)”[-Wimplicit函数声明]
snprintf(m->ltsymbol,m->ltsymbol的大小,[%d]”,n-m->nmaster);
^
dwm.c:796:10:注意:包括标题或显式提供“snprintf”的声明
dwm.c:975:1:错误:此处不允许函数定义
{
^
dwm.c:1001:1:错误:此处不允许函数定义
{
^
dwm.c:1010:1:错误:此处不允许函数定义
{
^
dwm.c:1025:1:错误:此处不允许函数定义
{
^
dwm.c:1051:1:错误:此处不允许函数定义
{
^
dwm.c:1075:1:错误:此处不允许函数定义
{
^
dwm.c:1085:1:错误:此处不允许函数定义
{
^
dwm.c:1103:1:错误:此处不允许函数定义
{
^
dwm.c:1113:1:错误:此处不允许函数定义
{
^
dwm.c:1138:1:错误:此处不允许函数定义
{
^
dwm.c:1159:1:错误:此处不允许函数定义
{
^
dwm.c:1177:1:错误:此处不允许函数定义
{
^
dwm.c:1185:1:错误:此处不允许函数定义
{
^
dwm.c:1196:1:错误:此处不允许函数定义
{
^
dwm.c:1212:1:错误:此处不允许函数定义
{
^
dwm.c:1228:1:错误:此处不允许函数定义
{
^
dwm.c:1298:1:错误:此处不允许函数定义
{
^
dwm.c:1308:1:错误:此处不允许函数定义
{
^
dwm.c:1329:1:错误:此处不允许函数定义
{
^
致命错误:发出的错误太多,正在停止[-ferror limit=]
生成1个警告和20个错误。
***错误代码1
停止
make:stopped in/usr/home/dominic/Source/dwm
我想让它在应用补丁的情况下成功编译,这样我就可以使用systray了。

我看到的第一个错误是:

关于:

void
expose(XEvent *e)
{
    Monitor *m;
    XExposeEvent *ev = &e->xexpose;

    if (ev->count == 0 && (m = wintomon(ev->window))) { 
        drawbar(m);
        if (m == selmon)
                   updatesystray();
}
明显地重写以暴露问题:

void
expose(XEvent *e)
{
    Monitor *m;
    XExposeEvent *ev = &e->xexpose;

    if (ev->count == 0 && (m = wintomon(ev->window))) 
    {   
        drawbar(m);
        if (m == selmon)
                       updatesystray();
    }
// this is missing, right here,  the final closing brace '}'
我看到的第一个错误是:

关于:

void
expose(XEvent *e)
{
    Monitor *m;
    XExposeEvent *ev = &e->xexpose;

    if (ev->count == 0 && (m = wintomon(ev->window))) { 
        drawbar(m);
        if (m == selmon)
                   updatesystray();
}
明显地重写以暴露问题:

void
expose(XEvent *e)
{
    Monitor *m;
    XExposeEvent *ev = &e->xexpose;

    if (ev->count == 0 && (m = wintomon(ev->window))) 
    {   
        drawbar(m);
        if (m == selmon)
                       updatesystray();
    }
// this is missing, right here,  the final closing brace '}'

OT:请不要使用制表符进行缩进,尤其是在与空格混合时。在编辑器中显示的结果代码是缩进的混合体,具体取决于“制表符”在编辑器中显示的宽度。OT:变量名(和参数名)应指示
内容
用法
(或两者兼而有之)一个、两个或三个字符的名称是没有意义的,即使在当前上下文中也是如此。这是一个主要的例子,说明为什么不发布代码链接在这个问题写了12个月后,
gethub
中的链接值已被删除。OT:请不要使用制表符缩进,特别是在与空格混合时。当在编辑器中显示的是缩进的混合体,这取决于“选项卡”在编辑器中显示的宽度。注意:变量名(和参数名)应表示
内容
用法
(或两者都更好)一个、两个或三个字符的名称都是没有意义的,即使在当前的上下文中也是如此。这是为什么不发布代码链接的一个主要示例。在编写此问题12个月后,
gethub
中的链接值已被删除。