xyz*_*xyz 16 c++ 64-bit makefile compilation g++
也许是一个非常微不足道的问题:
我需要将程序编译为64位(编写早期的makefile以将其编译为32位).
我在每个文件编译中看到了命令行参数中出现的选项-m32.所以,我修改了makefile以摆脱OPTFLAG中的-m32,但是当程序编译时,我仍然看到-m32出现,二进制文件仍然是32位.这个m32也来自其他地方吗?
Jon*_*ely 19
-m32 只能来自makefile中的某个地方,你必须追踪它(使用递归grep)并删除它.
当我能够强制-m64时,我得到"你选择的CPU不支持x86-64指令集".任何线索?uname -a给出了x86_64
该错误意味着-march=i686makefile中有一个选项,对于64位编译无效,请尝试删除它.
如果你不能删除它(更加努力!)然后-march=x86-64在命令行上添加它将指定一个通用的64位CPU类型.
如果您尝试构建的软件是基于autotools的,那么这应该可以解决问题:
./configure "CFLAGS=-m64" "CXXFLAGS=-m64" "LDFLAGS=-m64" && make
Run Code Online (Sandbox Code Playgroud)
或者,对于一个普通的Makefile:
env CFLAGS=-m64 CXXFLAGS=-m64 LDFLAGS=-m64 make
Run Code Online (Sandbox Code Playgroud)