繁体   English   中英

X11 / xlib.h给我XClearWindow错误

[英]X11/xlib.h giving me XClearWindow errors

我有用C代码编写的程序。 它是hsetroot的分支。 我选择了它,然后为其添加了更多选项,以便可以操纵设置为桌面的图像和颜色。 用户对其具有更多控制权。 它编译并安装没有任何错误。

我是在32位Debian Linux操作系统上完成的。 然后我出去给我买了双核64位笔记本电脑(50美元),安装Linux 64位。 仅出于GP(通用)目的,将我的程序带出来进行了除尘,甚至可能还要多清理一点。

当我尝试在命令行上编译它时,我现在遇到错误,它将不再编译。 该代码没有任何更改。 因此,不应看到任何错误。

但是,我收到此错误,因为它无法完全编译。 有趣的是,如果我使用-m32 arg,我将得到另一个无法编译的错误,然后使用或不使用-m46 arg。

我使用带有或不带有-m64 arg的此命令进行编译,然后得到以下错误。

 gcc `imlib2-config --cflags` `imlib2-config --libs` mhsetroot-v1.6.2.c -o myapp

然后得到这个错误

/usr/bin/ld: /tmp/cclrRrBO.o: undefined reference to symbol 'XClearWindow'
//usr/lib/x86_64-linux-gnu/libX11.so.6: error adding symbols: DSO 
missing from command line collect2: error: ld returned 1 exit status

它告诉我XClearWindow尚未在头文件中定义。 /usr/include/X11/xlib.h

extern int XClearWindow(
Display*        /* display */,
Window      /* w */

当我使用-m32 arg编译它时,出现此错误

/development/c/mhsetroot$ gcc -m32  `imlib2-config --cflags` `imlib2- config --libs` mhsetroot-v1.6.2.c -o myapp

我得到这个错误

In file included from mhsetroot-v1.6.2.c:29:0:
/usr/include/X11/Xlib.h:38:23: fatal error: sys/types.h: No such file or    directory #include <sys/types.h>

告诉sys / types.h现在出问题了-

所提供的功能-从我在32位Linux操作系统上执行此操作时没有遇到问题的代码以来,这些代码从未更改过。 但是现在在这个64位的Linux操作系统上,我遇到了问题。 真正的问题是什么? 因为这不是我的代码。

需要添加的命令行arg是-lX11以告诉它也链接X11 ...(当我运行32位Linux时不需要,但是现在在64位Linux NIW中需要(不知道为什么))这摆脱了“命令行中缺少DSO”链接错误。现在,编译时没有任何错误-

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM