Как мне скомпилировать 64-битную программу с gcc / g ++ в 64-битной Linux?

8535
Mike Wong

Я использую Ubuntu 10.04 LTS и хочу, чтобы программа работала на большом сервере Debian с 300 ГБ памяти. С командой:

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

это возвращает что-то вроде

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 

но без флага -m64 программа может быть скомпилирована, но будет сталкиваться с проблемой «ошибки сегментации» всякий раз, когда использование оперативной памяти превышает 2,5 ГБ.

Или компиляция по умолчанию будет 64-битной? Как мне узнать, является ли процесс 32-битным или 64-битным в топе?

2
Ошибка ясна; файл заголовка не найден; вам нужно предоставить его для компиляции программы Ramhound 9 лет назад 1
Почему вы отправили это как суперпользователю, так и [переполнению стека] (http://stackoverflow.com/q/25954595/3938807)? Я думаю, что переполнение стека в этом случае, вероятно, лучшее из двух. lzam 9 лет назад 0

2 ответа на вопрос

1
AcridBrimistic

glibc-develПакет должен быть правильным, однако, не забудьте использовать пакет x86_64 арки.

В моей федоре glibc-devel.x86_64была правильная упаковка.

Для Ubuntu это может быть просто glibc-dev.x86_64

Попробуйте одно из следующих

sudo apt-get install glibc-devel.x86_64  sudo apt-get install glibc-dev.x86_64 
0
tonioc

It looks you're missing the glibc-devel package that carries gnu/stubs-64.h. Try:

sudo apt-get install glibc-devel 

Похожие вопросы