Вам нужны заголовочные файлы, которые предоставляются -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\\.?