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ビットでしょうか?プロセスが「トップ」で32ビットか64ビットかを確認するにはどうすればよいですか?
glibc-devel
パッケージは正しいはずですが、必ずx86_64Archパッケージを使用してください。
私の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
glibc-devel
を運ぶgnu/stubs-64.h
パッケージが不足しているようです。試してみてください:
Sudo apt-get install glibc-devel