Ошибка компиляции/usr/bin/ld: не может найти-lSDL collect2

Когда я делаю

$ 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:I сделал Ваше предложение, и вывод был followings:

$ 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.

A.B., поскольку Вы запросили. Вот вывод команд в Вашем комментарии.

Когда я сделал

$ 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

A.B.: Когда я сделал. Снижение произошло.

$ 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) ...

Решенный предложением doug

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.

Спасибо за Ваше решение, doug! Благодаря всем, кто участвовал в этой проблеме особенно steeldriver и A.B.!

1
задан 23 May 2015 в 14:33

2 ответа

Откройте программное обеспечение & Обновления> вкладка Updates & удостоверьтесь, что первые 2 включены. (-испытанная безопасность, испытанные обновления). Если один или другой не был включен, тогда делают так, после той перезагрузки источники & продолжить двигаться.

, Если оба, где тогда пытаются переключиться, разъединяют на основной странице> Загрузка с: используйте основной сервер. Тогда перезагрузите источники & посмотрите.

Вам нужен libsdl1.2-dev (1.2.15-8ubuntu1.1), чтобы быть доступным & это должно быть, был выпущен в 04/14 - http://packages.ubuntu.com/trusty-updates/libsdl1.2-dev

0
ответ дан 23 May 2015 в 14:33

Попробуйте что-то как gcc cube.c $(pkg-config --libs glut gl glu sdl). Не полностью уверенный в тех именах пакета все же.

0
ответ дан 23 May 2015 в 14:33

Другие вопросы по тегам:

Похожие вопросы: