本文主要是介绍集成libcpr,编译失败,error: bad value (‘armv8-a+crc‘) for ‘-march=‘ switch,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
服务端集成libcpr库的时候,编译失败,报错error: bad value ('armv8-a+crc') for '-march=' switch,
#30 25.32 cc1: error: bad value ('armv8-a+crc') for '-march=' switch
#30 25.32 cc1: note: valid arguments to '-march=' switch are: nocona core2 nehalem corei7 westmere sandybridge corei7-avx ivybridge core-avx-i haswell core-avx2 broadwell skylake skylake-avx512 cannonlake icelake-client icelake-server cascadelake tigerlake bonnell atom silvermont slm goldmont goldmont-plus tremont knl knm x86-64 eden-x2 nano nano-1000 nano-2000 nano-3000 nano-x2 eden-x4 nano-x4 k8 k8-sse3 opteron opteron-sse3 athlon64 athlon64-sse3 athlon-fx amdfam10 barcelona bdver1 bdver2 bdver3 bdver4 znver1 znver2 btver1 btver2 native
#30 25.33 make[2]: *** [_deps/zlib-build/CMakeFiles/zlib.dir/build.make:370: _deps/zlib-build/CMakeFiles/zlib.dir/arch/arm/crc32_acle.c.o] Error 1
#30 25.33 make[1]: *** [CMakeFiles/Makefile2:212: _deps/zlib-build/CMakeFiles/zlib.dir/all] Error 2
#30 25.33 make[1]: *** Waiting for unfinished jobs....
怎么解决呢?
首先我们发现是编译zlib的时候报错了
通过报错我们可以发现是系统的架构检测错误
我们去CMAKE里看下
发现是通过检测这个字段是否为TRUE判断系统架构的,从而编译的,那么这个字段子哪里设置的呢?
我们发现是在cmake文件夹里的cmake文件里设置的
进一步看下ARCH在那里定义的
但是通过uname -m 和lscpu | grep Architecture 检测都是x86_64
那么需要看下是否在那里设置了ARCH?
发现在初始的的cmake里设置了系统架构,至此问题解决,把这个注释掉,成功编译程序
这篇关于集成libcpr,编译失败,error: bad value (‘armv8-a+crc‘) for ‘-march=‘ switch的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!