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

Я использую 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-битной? Как мне сказать, если процесс 32bit или 64bit в "топ"?

20
задан Mike Wong
10.02.2023 7:38 Количество просмотров материала 2739
Распечатать страницу

2 ответа

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

в моей fedora, 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
1
отвечен AcridBrimistic 2023-02-11 15:26

похоже, вам не хватает glibc-devel пакета, который несет gnu/stubs-64.h. Попробуйте:

sudo apt-get install glibc-devel
0
отвечен tonioc 2023-02-11 17:43

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх