cc1: error: unrecognized command line option "-m64"

ubuntu16.04 64位交叉编译环境

编译openssl时,出现错误图片描述

问题是configure执行后生成的Makefile中的CFGLAG
CFLAG= -DDSO_DLFCN -DHAVE_DLFCN_H -m64 -DL_ENDIAN -O3 -Wall

去掉-m64就行了

但是,每次编译都要手动去改,有没有其他方法?

阅读 11.1k
1 个回答

openssl 确实有点小特殊,我也没弄过,但是授人以渔,教你方法。
看到开源代码,第一反应是在configure中配置,但是下载代码了发现没有configure,还好我比较聪明,他有config,其实也有configure,只是Configure,首字母大写。
然后发现他没有配置选项,我就 grep -r "-m64" ./ 看是在哪里配置的,结果发现在Configure中有大量的的-m64。
再看前面的linux-ppc64,我就明白了,原来他是根据目标系统预先设定好编译选项,那么出现-m64 的原因是识别错了编译器。
再反过来查找,发现编译器的识别是在config里面做的,识别完成了,最后几行的代码是perl ./Configure $OUT,看明白了吧,要么让config识别正确的编译器,要么干脆根据你的系统写死$OUT算了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题