Você precisa dos arquivos de cabeçalho, que são fornecidos por -dev packages e não nos próprios pacotes da biblioteca. Então, tente instalar libx11-dev . Isso deve corrigir esse erro de compilação específico, embora você possa obter erros semelhantes sobre outras bibliotecas (e, em seguida, instalar os pacotes -dev ).
Embora esses pacotes forneçam arquivos de cabeçalho em vez de binários, e em geral os arquivos de cabeçalho são responsáveis por todas as arquiteturas suportadas através do uso de macros de pré-processador, no entanto, -dev packages no Ubuntu tendem a ser específicos da arquitetura, e este é o caso para libx11-dev (como pode ser visto aqui expandindo uma versão e encontrando os pacotes .deb listados para libx11-dev nessa versão). Como o seu sistema Ubuntu é de 64 bits e você está compilando um programa de 32 bits que deve ser vinculado à versão de 32 bits da biblioteca, provavelmente será necessário instalar a versão de 32 bits do libx11-dev . Se você estiver instalando com apt-get ou aptitude , poderá especificar isso indicando libx11-dev:i386 como o pacote a ser instalado (desde O multarch é suportado e está sendo usado).
link é um bom recurso para encontrar o nome do pacote -dev correspondente a um pacote de biblioteca. Nem sempre o nome do pacote da biblioteca é seguido imediatamente por -dev ; às vezes os números de versão presentes no nome do pacote da biblioteca, especialmente após um - , estão ausentes no nome do pacote -dev correspondente.