LDFLAGS
deve incluir -m32
também. A seguir deve funcionar:
export LDFLAGS='-m32 -L/usr/lib32'
Na verdade, você pode descartar -L/usr/lib32
part, já que este é um diretório padrão para bibliotecas de 32 bits, e seu sistema está ciente disso.
Basicamente, a maneira mais simples de construir aplicações de 32 bits em máquinas de 64 bits é:
export CFLAGS='-m32'
export CXXFLAGS='-m32'
export LDFLAGS='-m32'
make
.. ou alimente essas variáveis para configurar o script se você estiver usando autotools.
ATUALIZAÇÃO:
Parece que você não está familiarizado com as diferenças de vinculação com bibliotecas estáticas e dinâmicas. Vou tentar ser o mínimo possível:
- As bibliotecas de desenvolvimento estáticas e dinâmicas possuem a mesma extensão de arquivo
.a
- Se você instalou versões estáticas e dinâmicas da mesma biblioteca, uma delas pode ter um postfix adicional, como
libname.a
para dinâmico elibname_s.a
para versão estática. - Certamente, as versões de biblioteca estática e dinâmica diferem em tamanho. Versão estática é mais pesada.
- Se você vincular à biblioteca estática - seu aplicativo não terá dependências. Se você vincular à biblioteca dinâmica, ela dependerá da biblioteca de tempo de execução
.so
que deve estar presente em seu sistema.
Por favor, note que não estamos falando de truques avançados aqui, como o carregamento explícito de DSOs usando a API dlopen () / dlsym ().