当前位置: 首页 > news >正文

新郑郑州网站建设具备网站维护与建设能力

新郑郑州网站建设,具备网站维护与建设能力,四川重大新闻事件,企业软文在mac上编译x264源码时,报错No working C compiler found 。网上找了一圈方案也无法解决 只能硬着头皮看configure这个脚本,通过一步一步抽丝拨茧终于是在mac上可以编译了。 这里只当记录一下,为后续同学遇到同样问题提供一个辅助解决方案。…

在mac上编译x264源码时,报错No working C compiler found 。网上找了一圈方案也无法解决

只能硬着头皮看configure这个脚本,通过一步一步抽丝拨茧终于是在mac上可以编译了。

这里只当记录一下,为后续同学遇到同样问题提供一个辅助解决方案。

我们直接进入configure脚本中,通过搜索报错内容,很容易就定位到报错行

# check requirementscc_check || die "No working C compiler found."

这一行我理解的就是检查当前编译环境,如果编译环境配置不当的话,直接输出"No working C compiler found."

通过查看configure脚本,确认了cc_check 是一个方法

cc_check() {if [ -z "$3" ]; thenif [ -z "$1$2" ]; thenlog_check "whether $CC works"elif [ -z "$1" ]; thenlog_check "for $2"elselog_check "for $1"fielif [ -z "$1" ]; thenif [ -z "$2" ]; thenlog_check "whether $CC supports $3"elselog_check "whether $CC supports $3 with $2"fielselog_check "for $3 in $1";firm -f conftest.cfor arg in $1; doecho "#include <$arg>" >> conftest.cdoneecho "int main (void) { $3 return 0; }" >> conftest.cif [ $compiler_style = MS ]; thencc_cmd="$CC conftest.c $(cc_cflags $CFLAGS $CHECK_CFLAGS $2) -link $(cl_ldflags $2 $LDFLAGSCLI $LDFLAGS)"elsecc_cmd="$CC conftest.c $CFLAGS $CHECK_CFLAGS $2 $LDFLAGSCLI $LDFLAGS -o conftest"fiecho $cc_cmdif $cc_cmd >conftest.log 2>&1; thenres=$?log_okelseres=$?log_faillog_msg "Failed commandline was:"log_msg "--------------------------------------------------"log_msg "$cc_cmd"cat conftest.log >> config.loglog_msg "--------------------------------------------------"log_msg "Failed program was:"log_msg "--------------------------------------------------"cat conftest.c >> config.loglog_msg "--------------------------------------------------"fireturn $res
}

这个方法就是通过模拟编译源文件的方式来验证编译环境

这段代码会动态生成一个名叫conftest.c的原文件,文件内容就是简单的循环

int main(){for( 1 in 9);return 0;
}

大体就是上面这样,通过编译上面的文件来确认编译环境。

回到我们的问题,由于报错No working C compiler found.确认是这个方法编译报错了。

下面就转到定位这个脚本的编译命令。很快我们echo 输出能看到编译这个测试源文件的命令为

gcc conftest.c -Wall -I. -I$(SRCPATH) -mdynamic-no-pic -arch armv7 -Werror=unknown-warning-option -lm -arch armv7 -o conftest

我们可以自己本地创建一个测试源文件,通过gcc命令直接编译,来验证我们的编译环境。

本地环境没有问题,通过对比我们发现上面的调试命令多了很多配置参数。

我们逐行删除一些配置来定位哪个配置引起的错误,很顺利,这里定位到了是-arch armv7 影响到了,将上面的命令行修改为

gcc conftest.c -Wall -I. -I$(SRCPATH) -mdynamic-no-pic  -Werror=unknown-warning-option -o conftest

修改后的命令行,进过测试是可以正常编译测试源文件的。

现在的问题回归到gcc编译参数是怎么拼接的了,我们找到拼接的地方手动去掉这几个参数。

很快我们就找动了这个地方。

        ARCH="ARM"if [ "$SYS" = MACOSX ] ; thenAS="${AS-${CC}}"ASFLAGS="$ASFLAGS -DPREFIX -DPIC"  # apple's ld doesn't support movw/movt relocations at all# build for armv7 by defaultif ! echo $CFLAGS | grep -Eq '\-arch' ; thenCFLAGS="$CFLAGS -arch armv7"LDFLAGS="$LDFLAGS -arch armv7"fi

上面就是判断当前编译环境,如果是mac os arm芯片的话,配置上面的参数,不知为何上面的配置,在我的mac上编译错误。我们直接大胆地把这几行注释掉

  ARCH="ARM"if [ "$SYS" = MACOSX ] ; thenAS="${AS-${CC}}"ASFLAGS="$ASFLAGS -DPREFIX -DPIC"  # apple's ld doesn't support movw/movt relocations at all# build for armv7 by default# if ! echo $CFLAGS | grep -Eq '\-arch' ; then#     CFLAGS="$CFLAGS -arch armv7"#     LDFLAGS="$LDFLAGS -arch armv7"# fi

进过测试验证,现在可以愉快地编译了,就注释掉这一块的影响未知,代后续发现再补充,或者有知道的伙伴评论区留言下。

http://www.yayakq.cn/news/642799/

相关文章:

  • 网站备案表不会写公司想建个网站
  • 固始网站制作asp网站 证书
  • 淘客网站做百度推广成武县住房和城乡建设局网站
  • 网站开发语言怎么看网站开发语言作用
  • 做汽车团购的网站建设如何做商业网站推广
  • 百度商桥怎么绑定网站网页版微信app
  • 网页怎么做成网站1688网站怎么样
  • 西域数码网站建设网站建设备案优化
  • html网站编辑器池州有哪些做网站的
  • 潍坊网站建设 中公国内logo设计网站
  • 网站子网页怎么做用dw做的网站容易变形
  • 营销创意网站wordpress 添加广告
  • 购买网站建设合同协议模板宽创国际的展馆设计案例
  • 中国域名网站排名在线制作图片旋转动态
  • 厦门网站优化服务做彩平的材质网站
  • 企业文化建设网站建设缙云县建设局网站
  • 如何做企业网站开发wordpress 中文网店
  • 谷哥做网站 是如何推广的7游网页游戏平台
  • app 网站运营ppt出国看病网站开发
  • 椒江住房和城乡建设部网站免费广告语设计生成器
  • 吉林网站建设代理渠道世界网络公司排名前十
  • 威海网站制作怎么样2021室内设计公司排名
  • 西安网站推广慧创招聘门户网站开发人员
  • 北京公司建设网站WordPress文章分享图
  • 郑州网站建设制作价格有自己网站做淘宝客赚钱吗
  • 怎么做审核网站全网营销张启明
  • 专业团队海报seo咨询推广找推推蛙
  • 云南做网站费用除尘环保设备网站模板
  • 丽江网站建设公司天津建设工程信息网渤海油田
  • 有做学历在网站能查的到的企业网站制造