Вам нужны заголовочные файлы, которые предоставляются -dev
пакетами, а не в самих пакетах библиотеки. Итак, попробуйте установить libx11-dev
. Это должно исправить эту конкретную ошибку сборки, хотя вы можете получить аналогичные ошибки о других библиотеках (а затем вы можете установить их -dev
пакеты).
Несмотря на то, что эти пакеты предоставляют файлы заголовков, а не двоичные файлы, и в общем случае файлы заголовков учитывают все поддерживаемые архитектуры благодаря использованию макросов препроцессора, тем не менее -dev
пакеты в Ubuntu, как правило, зависят от архитектуры, и это так libx11-dev
(как можно видеть) здесь , развернув выпуск и найдя .deb
пакеты, перечисленные libx11-dev
в этом выпуске). Поскольку ваша система Ubuntu является 64-битной, и вы компилируете 32-битную программу, которая должна ссылаться на 32-битную версию библиотеки, вам, вероятно, потребуется установить 32-битную версию libx11-dev
. Если вы устанавливаете с помощью apt-get
или aptitude
, вы можете указать это, указав libx11-dev:i386
в качестве пакета для установки (так как Multarch поддерживается и используется).
http://packages.ubuntu.com/ - хороший ресурс для поиска имени -dev
пакета, соответствующего пакету библиотеки. Это не всегда сразу за именем пакета библиотеки -dev
; иногда номера версий, присутствующие в имени пакета библиотеки, особенно после a -
, отсутствуют в имени соответствующего -dev
пакета.
ldconfig -p | grep libX11\\.
?