我正在使用需要libX11的库SFML编写程序。我最近刚从旧版本升级到ubuntu 11.04,从那时起,我一直无法编译程序。我收到以下错误:

make[3]: *** No rule to make target `/usr/lib/libX11.so', needed by `lib/libsfml-window.so.2.0.0'.  Stop.

我想也许是当我升级Ubuntu时,出于某种原因该软件包被卸载了,但是据Synaptic称,我有libX11-dev(我只是假设那是我应该寻找的东西,但我可能错了)。

编辑:

运行apt-get install libx11-dev给出以下输出:
sudo apt-get install libx11-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
libx11-dev is already the newest version.
  g++-4.4 libstdc++6-4.4-dev
Use 'apt-get autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 32 not upgraded.

并使用--reinstall标志运行可以得到以下效果:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
  g++-4.4 libstdc++6-4.4-dev
Use 'apt-get autoremove' to remove them.
0 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 32 not upgraded.
Need to get 0 B/3,104 kB of archives.
After this operation, 0 B of additional disk space will be used.
(Reading database ... 279595 files and directories currently installed.)
Preparing to replace libx11-dev 2:1.4.2-1ubuntu3 (using .../libx11-dev_2%3a1.4.2-1ubuntu3_i386.deb) ...
Unpacking replacement libx11-dev ...
Processing triggers for man-db ...
Setting up libx11-dev (2:1.4.2-1ubuntu3) ...

最佳答案

事实证明,我需要的一切只是一个简单的make clean。我还不清楚更新之间发生了什么,但是当我从头开始重建项目时,所有内容都能编译并正常工作。

关于c++ - 没有规则将目标设为/usr/lib/libX11.so,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6326032/

10-12 01:43