X11 / xlib.h给我XClearWindow错误

时间:2015-04-09 23:15:46

标签: c linux x11

我用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位BIT Linux操作系统上,我遇到了问题。什么是真正的问题?因为这不是我的代码。

1 个答案:

答案 0 :(得分:2)

需要添加的命令行arg是-lX11以告诉它链接X11 ...(当我运行32位Linux时不需要,但现在需要64位Linux NIW(否)想法为什么)这会导致“DSO从命令行中丢失”链接错误。它现在没有编译 -