我正在使用 Ubuntu 10.04 LTS,并且想要制作一个可以在具有 300GB 内存的大型 Debian 服务器上运行的程序。使用命令:
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 标志,该程序是可编译的,但只要 RAM 使用量超过 2.5GB 就会遇到“分段错误”问题。
或者实际上默认编译是 64 位?如何在“top”中判断进程是 32 位还是 64 位?
答案1
该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
答案2
看来您缺少glibc-devel
携带 的包gnu/stubs-64.h
。请尝试:
sudo apt-get install glibc-devel