1. ホーム
  2. c++

[解決済み] 64ビットマシンでC++プログラムを64ビットとしてコンパイルする方法は?

2022-02-15 17:04:28

質問

非常につまらない質問かもしれませんが。

あるプログラムを64ビットとしてコンパイルする必要があります(以前のmakefileは32ビットとしてコンパイルするように書かれていました)。

ファイルをコンパイルするたびに、コマンドラインパラメータに-m32というオプションが表示されるのを確認しました。そこで、OPTFLAGの-m32を取り除くようにmakefileを修正しましたが、やはりプログラムをコンパイルすると-m32が表示され、バイナリは32ビットのままです。このm32もどこかからきているのでしょうか?

解決方法は?

-m32 は、makefile のどこかに原因があるはずなので、それを突き止めて (recursive grep を使って) 削除しなければなりません。

<ブロッククオート

強制的に-m64できるようになると、"CPU you selected does not support x86-64 instruction set"と表示されるのですが、何か手がかりがあるのでしょうか。

そのエラーは、次のようなオプションがあることを意味します。 -march=i686 は64ビットコンパイルには無効ですので、それも削除してみてください。

もし、削除できない場合は(もっと頑張って!) -march=x86-64 の後に、コマンドラインで一般的な64ビットCPUの種類を指定します。