Я должен признать, что чувствую себя полностью потерянным каждый раз, когда я должен выполнить зависимости некоторого C или кода C++. В настоящее время я нахожусь на Ubuntu 9.10 (Кармическая Коала), но я помню то же чувство несчастности из Windows.
Я действительно думаю, что действительно понимаю C, C++, статические и динамические библиотеки, заголовочные файлы и соединение, а также менеджера по пакету "способность", но когда дело доходит до практической части, у меня нет абсолютно никакой идеи, что сделать. Даже если я управляю им так или иначе, я действительно не знаю, как я добрался там, и ни о чем не узнайте из него.
Например, сегодня я хотел использовать код, который указывает, что "Использует glib2, завихрение и openssl". В конце я выяснил это curl
и openssl
были уже установлены, но я должен был установить libcurl3-dev
через моего менеджера по пакету, который будет также требуемый (и установленный) libcurl4-openssl-dev
так, чтобы я не должен был волноваться о OpenSSL. Но я должен был выбрать эти пакетные имена из 67 подобно звучащих альтернатив. И glib
, с другой стороны, должен был быть загружен и создан вручную, так как не было никакого соответствующего пакета вообще.
Потребовались мои несколько часов для обнаружения этого, и это не первый раз. Таким образом, мой вопрос действительно:
Когда у меня есть неопределенное описание зависимостей:
Выяснение, какие пакеты установить для удовлетворения зависимостей не являются точной наукой. Но существуют некоторые подсказки, которые могли бы помочь Вам:
-dev
. Это коротко для разработки. Например, openssl
пакет содержит инструменты командной строки и библиотеки для работы с шифрованием. libssl-dev
содержит заголовочные файлы и библиотеки для openssl разработки.apt-cache search
. Например, я на самом деле не знал, что libssl-dev был, каково название openssl dev пакет было. Я нашел что использование этой команды: apt-cache search openssl | grep dev
и затем идя с тем, который, казалось, не был связан с другим языком/библиотекой.dpkg -l
, но в целом просто найдите пакет, который Вы хотите и говорите склонный установить его, если у Вас уже будет он затем склонный, то скажет Вам. Другой хороший совет - то, если Вы хотите знать, какой пакет владеет файлом, использовать dpkg -S /path/to/thefile
./configure
должен сказать Вам или файлу README. Часто они будут даже называть точный пакет требуемым.-lssl
к gcc. Если Вы не знаете что опции для -l
смотрят в/lib/(просто удаляют "lib" из передней стороны и ".so..." от спины для получения 'середины', которая передается gcc).