IEC61850源码交叉编译(基于NUC980)

IEC61850源码交叉编译:

参考:

交叉编译:

具体操作:将主目录下make文件夹中的target_system.mk文件进行更改:

编译命令:

 make TARGET=LINUX-ARM

交叉编译错误

提示:最好将源码放在ubuntu内,否则可能会有链接错误

交叉编译正常,则编译后如下:

: nuc980提供的交叉编译不支持该功能,因此无法编译

修改记录:将TCP_USER_TIMEOUT 改为 常数 18,编译通过

将交叉编译好的库文件build-arm,及程序考入开发板,运行程序

报错:

Libpthread动态库所属GLIB

需要将glib进行交叉编译 生成该库进行使用

如下

Glib 2.45.3 交叉编译

本机ubunut

一、源码包及下载路径

.源码包1 libffi-3.2.1

libffi

源码包2 zlib-1.2.8 libffi-3.2.1 glib-2.45.3

Index of /fossils

源码包3 glib-2.45.3

Index of /sources/glib/2.45/

二、交叉编译 Libffi

  1CC=/home/hek/Nuc980Work/Z-BSP-Usr/arm_linux_4.8/bin/arm-linux-gcc ./con     figure --host=arm-linux --prefix=/home/hek/lib/libffi-3.2.1/

2make

3make install

输入pkg-config --cflags libffi-arm则会输出环境路径 说明成功

libffi.so libffi.so.6.04 libffi.so.6拷贝到交叉编译器所在的lib库目录,具体与libc.so在同一个目录

二、交叉编译 Zlib

1CC=/home/hek/Nuc980Work/Z-BSP-Usr/arm_linux_4.8/bin/arm-linux-gcc ./configure --prefix=/home/hek/lib/zlib-1.2.8/

2make

3make install

验证:

 

二、交叉编译 Glib

 

添加有关配置文件Vim glib.cache

将下面复制到glib.chahe

glib_cv_stack_grows=no

glib_cv_long_long_format=ll

glib_cv_stack_grows=no

glib_cv_have_strlcpy=no

glib_cv_have_qsort_r=yes

glib_cv_va_val_copy=yes

glib_cv_uscore=no

glib_cv_rtldglobal_broken=no

ac_cv_func_posix_getpwuid_r=yes

ac_cv_func_posix_getgrgid_r=yes

ac_cv_type_long_long=yes

编译:

1CC=/home/hek/Nuc980Work/Z-BSP-Usr/arm_linux_4.8/bin/arm-linux-gcc ./configure --host=arm-linux --prefix=/home/hek/lib/glib/ LIBFFI_LIBS="-L/home/hek/lib/libffi-3.2.1/lib -lffi" LIBFFI_CFLAGS="-I/home/hek/lib/libffi-3.2.1/include" ZLIB_LIBS="-lz -L/home/hek/lib/zlib-1.2.8/lib" ZLIB_CFLAGS="-I/home/hek/lib/zlib-1.2.8/include" --cache-file=glib.cahe --disable-selinux --disable-xattr --disable-libelf  glib_cv_stack_grows=no glib_cv_uscore=yes ac_cv_func_posix_getpwuid_r=yes ac_cv_func_posix_getgrgid_r=yes --enable-iconv=no --with-libiconv=gnu

2make

3make install

成功生成库文件

失败案例见附录2

 

lib中库文件 libpthread.so.0 拷贝到开发板lib目录,将goose_publisher_example拷贝到开发板;并运行:

报错

进入库文件查看:

查看程序需要的动态库

发现开发板力度文件错误,

libgthread-2.0.so.0   libgthread-2.0.so.0.4503.0 拷贝开发板,并将libgthread-2.0.so.0改名为libgthread.so.0

继续运行

继续运行

缺少libiconv动态库

下载安装:http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz

命令:

1sudo CC=/home/hek/Nuc980Work/Z-BSP-Usr/arm_linux_4.8/bin/arm-linux-gcc ./configure --host=arm-linux --prefix=/home/hek/lib/libiconv --enable-shared=yes --enable-static=no

2make

3makeinstall

将对应动态库文件 拷贝到开发板:

OK,成功!!!!

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值