Como faço para compilar o programa de 64 bits com o gcc / g ++ em um Linux de 64 bits?

2

Estou usando o Ubuntu 10.04 LTS e quero fazer um programa para rodar em um grande servidor Debian que tenha 300GB de memória. Com o comando:

g++ Encoder.cpp -std=c++0x -m64 -o Encoder.o

retorna algo como

In files included from /usr/include/features.h:378,
                  from /usr/include/c++/4.4/i486-linux-gnu/64/bits/os_defines.h:39
                  from /usr/include/c++/4.4/i486-linux-gnu/64/bits/c++confige.h:243,
                  from /usr/include/c++/4.4/iostream:39,
                  from Encoder.cpp:1:
/usr/include/gnu/stubs.h:9:27: error: gnu/stubs-64.h: No such file or directory

mas sem o sinalizador -m64, o programa é compilável, mas irá se deparar com um problema de "falha de segmentação" sempre que o uso da RAM for superior a 2,5 GB.

Ou a compilação padrão seria de 64 bits? Como posso saber se um processo é de 32 bits ou 64 bits em "top"?

    
por Mike Wong 21.09.2014 / 02:26

2 respostas

1

O pacote glibc-devel deve estar correto, no entanto, certifique-se de usar o pacote x86_64.

No meu fedora, glibc-devel.x86_64 foi o pacote correto.

Para o Ubuntu, pode ser simplesmente glibc-dev.x86_64

Experimente um dos seguintes

sudo apt-get install glibc-devel.x86_64

sudo apt-get install glibc-dev.x86_64
    
por 06.06.2016 / 14:48
0

Parece que você está perdendo o pacote glibc-devel que transporta gnu/stubs-64.h . Experimente:

sudo apt-get install glibc-devel
    
por 22.09.2014 / 09:31