我尝试编译https://unix.stackexchange.com/a/228674在 Ubuntu 下。
不幸的是最终出现以下错误:
/tmp/find-cursor$ make
cc find-cursor.c -o find-cursor -lX11
find-cursor.c:19:39: fatal error: X11/extensions/Xcomposite.h: No such file or directory
#include <X11/extensions/Xcomposite.h>
^
compilation terminated.
make: *** [all] Error 1
我曾尝试过以下嫌疑人:
$ sudo apt-get install libxtst-dev libxss-dev libxtst6-dbg libxext6-dbg libxss1-dbg
但仍然无法编译。以下是方便您使用的片段:
sudo apt-get install mercurial
cd /tmp
hg clone https://bitbucket.org/Carpetsmoker/find-cursor
cd find-cursor
make
解决了:
FTR:为了编译上面的代码,我必须:
sudo apt-get install libxcomposite-dev libxdamage-dev libxrender-dev
并-std=gnu99
在 Makefile 中向 cc 添加标志
答案1
每当编译因缺少文件而失败时,只需利用基础架构来搜索缺少的 ubuntu 包
apt-file search some_missing_file_goes_here # cmd 1
apt-file search X11/extensions/Xcomposite.h # cmd 1
返回
libxcomposite-dev: /usr/include/X11/extensions/Xcomposite.h
所以解决方案是安装缺少的包
sudo apt-get install libxcomposite-dev # cmd 2
此技术适用于任何丢失的文件
在新的操作系统上,如果你发出
apt-file search X11/extensions/Xcomposite.h
将会失败并出现错误
The program 'apt-file' is currently not installed. To run 'apt-file' please ask your administrator to install the package 'apt-file'
这意味着你需要对本地搜索缓存进行一次性设置,因此只需运行
sudo apt-get install apt-file -y
sudo apt-file update
现在重新发出上面显示的搜索(cmd 1),然后安装包(cmd 2)
答案2
在http://packages.ubuntu.com/您可以搜索包含文件的包。
对于X11/extensions/Xcomposite.h
发现libxcomposite-dev
答案3
sudo apt-get install libxcursor-dev libxrandr-dev libxinerama-dev libxi-dev
那就可以了!