为ARM编译Glib

2020-02-13来源: eefocus关键字:ARM  编译  Glib

一些有用的参考:

http://gtk-doc-cn.googlecode.com/svn/docs/glib/glib-cross-compiling.html

http://blog.sina.com.cn/s/blog_630dcb970100fxtv.html

glib下载:http://ftp.gnome.org/pub/gnome/sources/glib/2.32/

一、解压,进入源代码目录,新建一个文本文件arm.cache

向文件里写入如下配置:

glib_cv_long_long_format=yes 
glib_cv_stack_grows=no 
glib_cv_working_bcopy=no 
glib_cv_uscore=no 
ac_cv_func_posix_getpwuid_r=yes 
ac_cv_func_nonposix_getpwuid_r=no 
ac_cv_func_posix_getgrgid_r=no

 

二、配置

cody@debian:~/arm210/glib-2.22.5$ ./configure --cache-file=arm.cache --host=arm-linux 


三、编译

make

到目前没出现错误


四、安装

sudo make install

错误1:

/home/cody/arm210/glib-2.22.5/libtool: line 7847: arm-linux-gcc: command not found 
libtool: install: error: relink `libgmodule-2.0.la' with the above command before installing it

解决:使用su切换到root再make,发现还是提示

arm-linux-gcc: command not found 

在命令行输入arm-linux-gcc试试看,恩,提示没找到命令,看来是root没有把工具链的变量包括起来,

先export工具链的路径:

export PATH=/opt/FriendlyARM/toolschain/4.5.1/bin/:$PATH 

再make,没问题

再make install,没问题

悲剧了,安装在/usr/local/bin里去了,这不是我想要的,先 make uninstall。

再configure一次:

./configure --cache-file=arm.cache --host=arm-linux --prefix=/opt/glib-2.22.5

再make,出现错误,删掉所有源文件,重新从压缩包里解压再来一次,OK了

关键字:ARM  编译  Glib 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic488091.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:ARM汇编--寻址方式
下一篇:构建arm-linux-gnueabi-gcc-4.6.3交叉编译链

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

海思ARM平台交叉编译zeroMQ
在使用海思的项目中要使用到ZeroMQ这个消息队列框架,之前在PC端使用感觉不错。所以通过要通过交叉编译,将其移植到ARM平台。移植方法,可以参考 https://blog.csdn.net/sishuihuahua/article/details/77203094  以下是我使用海思交叉编译工具的方法:一、配置编译器./configure --host=arm-himix100-linux --prefix=/opt/hisi-linux/zeromq-4.1.6/arm-zeromq  --without-libsodiumarm-himix100-linux   --host
发表于 2020-02-08
ARM常用汇编指令列表
发表于 2020-02-07
ARM常用汇编指令列表
ARM 处理器寻址方式之间接寻址的几种表达
我们以 LDR 指令为例来分别举例分析。LDR 指令的格式为:LDR{条件} 目的寄存器,<存储器地址>LDR 指令是字加载指令,用于从存储器中将一个 32 位的字数据送到目的寄存器中。该指令通常用于从存储器中读取 32 位的字数据到通用寄存器,然后对数据进行处理。当程序计数器 PC 作为目的寄存器时,指令从存储器中读取的字数据被当作目的地址,从而可以实现程序流程的跳转。指令示例:LDR R3, [R4]             ; 将存储器地址为 R4 的字数据读入寄存器 R3LDR R3, [R1, #8]     
发表于 2020-02-07
ARM 汇编指令 DCD
简介DCD:数据定义( Data Definition )伪指令一般用于为特定的数据分配存储单元,同时可完成已分配存储单元的初始化。语法格式:标号 DCD(或 DCDU) 表达式DCD(或 DCDU)伪指令用于分配一片连续的字存储单元并用指定的表达式初始化。其中表达式可以为程序标号或数字表达式。 DCD 也可用 “ &” 代替。用 DCD 分配的字存储单元是字对齐的,而用 DCDU 分配的字存储单元并不严格字对齐。实例(STM32 启动文件):__Vectors       DCD     __initial_sp     
发表于 2020-02-07
ARM 汇编指令 ADR 与 LDR 使用
简介这两个都是伪指令:ADR 是小范围的地址读取伪指令,LDR 是大范围的读取地址伪指令。可实际使用的区别是: ADR 是将基于 PC 相对偏移的地址值或基于寄存器相对地址值读取的伪指令,而 LDR 用于加载 32 位立即数或一个地址到指定的寄存器中。以下面的汇编代码为例:.global _start_start:    ldr r0, loop    adr r0, loop    ldr r0, =looploop:    nop用以下命令完成汇编、链接操作,并输出反汇编文件[root@localhost asm]# arm
发表于 2020-02-07
arm架构64位(AArch64)汇编优化总结
1、参考https://blog.csdn.net/SoaringLee_fighting/article/details/81906495https://blog.csdn.net/SoaringLee_fighting/article/details/82155608https://blog.csdn.net/u011514906/article/details/38142177https://blog.csdn.net/listener51/article/details/825304642、前言本文是arm架构64位(AArch64执行状态) neon优化的总结文档,主要包括arm架构64位优化的基础知识,特殊用法,打印
发表于 2020-02-07
arm架构64位(AArch64)汇编优化总结
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved