当我做
$ gcc cube.c -lglut -lGL -lGLU -lSDL
/usr/bin/ld: cannot find -lSDL
collect2: error: ld returned 1 exit status
当我做
$ sudo apt-get install libsdl*
Reading package lists...
Building dependency tree...
Reading state information...
libsdl-image1.2 is already the newest version.
libsdl-image1.2 set to manually installed.
libsdl1.2debian is already the newest version.
libsdl1.2debian set to manually installed.
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
libsdformat-dev : Depends: libboost-regex-dev but it is not going to be installed
Depends: liburdfdom-dev but it is not going to be installed
libsdl-image1.2-dev : Depends: libtiff-dev
libsdl-mixer1.2-dev : Depends: libflac-dev (>= 1.2.1) but it is not going to be installed
Depends: libvorbis-dev (>= 1.2.0) but it is not going to be installed
libsdl1.2-dbg : Depends: libsdl1.2debian (= 1.2.15-8ubuntu1) but 1.2.15-8ubuntu1.1 is to be installed
libsdl1.2-dev : Depends: libsdl1.2debian (= 1.2.15-8ubuntu1) but 1.2.15-8ubuntu1.1 is to be installed
Depends: libpulse-dev but it is not going to be installed
libsdl2-dev : Depends: libpulse-dev but it is not going to be installed
Depends: libudev-dev but it is not going to be installed
似乎 libsdl 安装不成功。在搜索 libsdl 时,有两个版本 libsdl1 和 libsdl2。我正在考虑寻找其他安装它们的方法。有人对安装有什么建议吗?
@steeldriver:我做了你的建议,输出如下:
$ sudo apt-get update && sudo apt-get upgrade
finished...
$ sudo apt-get install libsdl1.2-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
libsdl1.2-dev : Depends: libsdl1.2debian (= 1.2.15-8ubuntu1) but 1.2.15-8ubuntu1.1 is to be installed
Depends: libpulse-dev but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
AB 如您所愿。这是您评论中命令的输出。
当我做的
$ apt-cache policy libsdl1.2-dev
libsdl1.2-dev:
Installed: (none)
Candidate: 1.2.15-8ubuntu1
Version table:
1.2.15-8ubuntu1 0
500 http://ubuntu.mirror.crucial.com.au/ trusty/main amd64 Packages
当我做的
$ apt-cache policy libsdl1.2debian
libsdl1.2debian:
Installed: 1.2.15-8ubuntu1.1
Candidate: 1.2.15-8ubuntu1.1
Version table:
*** 1.2.15-8ubuntu1.1 0
100 /var/lib/dpkg/status
1.2.15-8ubuntu1 0
500 http://ubuntu.mirror.crucial.com.au/ trusty/main amd64 Packages
当我做的
$ apt-cache policy libpulse-dev
libpulse-dev:
Installed: (none)
Candidate: 1:4.0-0ubuntu11
Version table:
1:4.0-0ubuntu11 0
500 http://ubuntu.mirror.crucial.com.au/ trusty/main amd64 Packages
AB:当我这样做的时候。降级发生了。
$ sudo apt-get install libsdl1.2debian=1.2.15-8ubuntu1
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be DOWNGRADED:
libsdl1.2debian
0 upgraded, 0 newly installed, 1 downgraded, 0 to remove and 0 not upgraded.
Need to get 162 kB of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] y
WARNING: The following packages cannot be authenticated!
libsdl1.2debian
Install these packages without verification? [y/N] y
Get:1 http://ubuntu.mirror.crucial.com.au/ trusty/main libsdl1.2debian amd64 1.2.15-8ubuntu1 [162 kB]
Fetched 162 kB in 0s (243 kB/s)
dpkg: warning: downgrading libsdl1.2debian:amd64 from 1.2.15-8ubuntu1.1 to 1.2.15-8ubuntu1
(Reading database ... 443054 files and directories currently installed.)
Preparing to unpack .../libsdl1.2debian_1.2.15-8ubuntu1_amd64.deb ...
Unpacking libsdl1.2debian:amd64 (1.2.15-8ubuntu1) over (1.2.15-8ubuntu1.1) ...
Setting up libsdl1.2debian:amd64 (1.2.15-8ubuntu1) ...
Processing triggers for libc-bin (2.19-0ubuntu6.6) ...
根据道格的建议解决
Open up Software & Updates > Updates tab & make sure that
the first 2 are enabled. (- trusty-security, trusty-updates).
If one or the other wasn't enabled then do so,
after that reload sources & proceed.
感谢您的解决方案,道格!感谢所有参与这个问题的人,尤其是 steeldriver 和 AB!
打开 Software & Updates > Updates 选项卡并确保前 2 个已启用。(- 可信赖的安全,可信赖的更新)。如果一个或另一个未启用,则执行此操作,然后重新加载源并继续。
如果两者都在哪里,则尝试在主页上切换服务器 > 下载自:使用主服务器。然后重新加载源并查看。
您需要 libsdl1.2-dev (1.2.15-8ubuntu1.1) 可用并且它应该在 04/14 发布 - http://packages.ubuntu.com/trusty-updates/libsdl1.2-dev
尝试类似的东西
gcc cube.c $(pkg-config --libs glut gl glu sdl)
。虽然不完全确定这些包名称。