美文网首页
交叉编译踩坑

交叉编译踩坑

作者: soondh | 来源:发表于2020-06-30 14:37 被阅读0次

之前接触过GO,交叉编译简直好用。这次机缘巧合,有一个应用场景,需要把服务放到端上,立马想到了用GO写一个服务,编译到端上运行。

然后踩坑就开始了。

开始是编译后的文件执行不了,返回一堆err。百度之后发现是gcc的问题,需要在交叉编译的命令中加上CC参数。

那么CC参数的值填什么呢,就是需要用到的gcc编译器。于是去确定系统架构

unman -a

应该就是aarch64吧,于是下载对应的gcc,各种难下载,最后找到一个。

编译命令:

CGO_ENABLED=1 GOOS=linux GOARCH=arm64 CC=/Volumes/aarch64/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-gcc go build

编译后的文件可以用。但是又有新坑。

import一些包之后,会出现 /bin/sh xxx not found,不知道为什么,后来把import的包一个一个过滤,发现是github.com/prometheus/procfs 这个包,又一个文件一个文件过滤,发现proc相关的文件没有问题,于是改造了一波,解决问题。

然后需要搭建一个http服务,引入了net/http,又崩了。这次彻底怒了,去看看究竟是什么原因。后来怀疑是端上缺少一些必要的的.so

于是./aarch64-unknown-linux-gnu-readelf -d xxx

看一波.so

发现其中一个奇怪的东东

但是端上不一样

于是怀疑是这个的问题

然后发现了根本原因,gcc选错了,不是aarch64,是gnueabihf,也就是ld-linux-armhf.so.3对应的gcc。

阿西吧。

相关文章

  • 交叉编译踩坑

    之前接触过GO,交叉编译简直好用。这次机缘巧合,有一个应用场景,需要把服务放到端上,立马想到了用GO写一个服务,编...

  • ijkplayer 编译备忘,支持x264和https

    title: IJKPlayer Android编译踩坑tags: 新建,模板,小书匠grammar_cjkRub...

  • darknet编译踩坑

    darknet最好使用OpenCV3.3版本,OpenCV4.0以上会有各种错误,尚未跑通(darknet iss...

  • 编译 SO 踩坑

    JNI DETECTED ERROR IN APPLICATION: jarray was NULL' 详细错误信...

  • 填坑C++模板类

    大神们常说不要重复造轮子,小编说不要重复踩坑,希望小编踩过得坑大家不要再踩。 模板类的编译和普通类是截然不同的,所...

  • 【CV实战】Ubuntu18.04源码编译安装opencv-3.

    之前在Windows上借助VS编译opencv,很轻松就能搞定,到Linux下踩了坑,Ubuntu下编译、卸掉重编...

  • 【CV实战】Ubuntu18.04源码编译安装opencv-3.

    之前在Windows上借助VS编译opencv,很轻松就能搞定,到Linux下踩了坑,Ubuntu下编译、卸掉重编...

  • 源码编译安装TensorFlow

    Ubuntu16.04 编译安装TensorFlow踩坑指南,参考官方文档 使用pip安装TensorFlow在运...

  • go 交叉编译避坑贴

    我查看了网上很多的文章,但是实际编译出来的文件经常无法运行。现在我这里总结一下帮助大家避坑 1、使用bash类终端...

  • go 交叉编译避坑贴

    我查看了网上很多的文章,但是实际编译出来的文件经常无法运行。现在我这里总结一下帮助大家避坑 1、使用bash类终端...

网友评论

      本文标题:交叉编译踩坑

      本文链接:https://www.haomeiwen.com/subject/kpkxqktx.html