常用工具软件的交叉编译问题

常用工具软件的交叉编译,持续更新。。。

iproute2、libsocketcan、canutils参考网址:

1、http://www.embedu.org/Column/Column596.htm

2、http://processors.wiki.ti.com/index.php/AM335X_DCAN_Driver_Guide#CAN_Utilities

一、libsocketcan-0.0.9.tar.bz2交叉编译


因为canutils编译需要libsocketcan库的支持,需要下载libsocketcan。
下载地址:http://www.pengutronix.de/software/libsocketcan/download/ 笔者下载的是libsocketcan 0.0.9

1、./configure \
--host=arm-xilinx-linux-gnueabi \
--prefix=/usr/local/libsocketcan

2、make

3、sudo make install
报错如下:
../libtool: line 1088: arm-xilinx-linux-gnueabi-ranlib: command not found
make[2]: *** [install-libLTLIBRARIES] 错误 127
make[2]:正在离开目录 `/home/zb/ruanjianbao/libsocketcan-0.0.9/src'
make[1]: *** [install-am] 错误 2
make[1]:正在离开目录 `/home/zb/ruanjianbao/libsocketcan-0.0.9/src'
make: *** [install-recursive] 错误 1


解决方法:
先进入root用户
然后在root用户下配置交叉编译器
export PATH=/home/zb/mygcc/CodeSourcery/Sourcery_CodeBench_Lite_for_Xilinx_GNU_Li    nux/bin:$PATH
最后在root用户下make install



二、canutils 3.0.0交叉编译


注意:使用3.0.0版本不会出错

下载地址:http://www.pengutronix.de/software/socket-can/download/canutils 。笔者下载的是canutils 3.0.0。
1、./configure --host=arm-xilinx-linux-gnueabi \
--prefix=/usr/local/canutils \
libsocketcan_LIBS=-lsocketcan \
LDFLAGS=-L/home/zb/libsocketcan/lib \
CPPFLAGS=-I/home/zb/libsocketcan/include

2、make

3、sudo make install
 


三、iproute2 2.6.36 交叉编译 Socket CAN测试 


注意:只能用2.6.36,别的版本ip命令不能用

因为最新版BusyBox对Socket CAN的不支持,所以为了测试和使用Socket CAN,我们需要自己编译Socket CAN的工具。这里介绍两个工具,分别是

iproute2 和 canutils。
(1)下载地址:http://pkgs.fedoraproject.org/repo/pkgs/iproute/iproute2-2.6.39.tar.gz/8a3b6bc77c2ecf752284aa4a6fc630a6/iproute2-2.6.39.tar.gz。笔者下载的是iproute2 2.6.36。
(2)解压iproute2-2.6.36.tar.xz,修改Makefile第33行。
        33 #CC = gcc
        34 CC = arm-none-linux-gnueabi-gcc
(3)因为我们只需要iprout2的ip命令,所以修改Makefile的第42行。
        42 #SUBDIRS=lib ip tc bridge misc netem genl man
        43 SUBDIRS=lib ip
(4)修改完成执行make命令,生成ip命令,拷贝到开发板文件系统目录。
(5)使用ip命令。
        ifconfig can0 down         //关闭can0,以便配置
        ./ip link set can0 up type can bitrate 250000       //设置can0波特率

        ./ip -details link show can0        //显示can0信息

四、linuxptp1.6交叉编译 只能用1.6版本

(1)源码下载网址:https://sourceforge.net/projects/linuxptp/files/v1.6/

(2)交叉编译: make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi-

(3)编译出错:

sk.c:58:30: error: 'HWTSTAMP_TX_ONESTEP_SYNC' undeclared (first use in this function)
sk.c:58:30: note: each undeclared identifier is reported only once for each function it appears in

clockadj.o:clockadj.c:(.text+0x5d8): more undefined references to `clock_adjtime' follow
collect2: ld returned 1 exit status
make: *** [ptp4l] 错误 1

(4)问题解决:

1、sk.c 缺少宏,我直接把内核的net_tstamp.h拷贝过来//可以不管这一步

2、然后注释掉missing.h  的65行#ifndef HAVE _CLOCK _ADJTIME、70行 #endif和51行#ifndef HAVE_ONESTEP_SYNC、55行#endif

五、redhat下gpsd源码安装gpsd

在ubuntu下:apt-get install gpsd

(1)下载gpsd源码:http://www.catb.org/gpsd/#downloads

(2)安装scons---scons安装和使用 //安装scons 2.1.0以上的版本

首先安装各种依赖:
  • yum install gcc
  • yum install ncurses ncurses-devel
  • yum install python-devel //安装python2.5以上的版本

1. scons是神马?

 scons是linux下的自动构建工具,类似cmake。
2. 安装

 wget http://prdownloads.sourceforge.net/scons/scons-2.2.0.tar.gz .
 tar zxvf scons-2.2.0.tar.gz
 cd scons-2.2.0
 python setup.py install
 正常情况下,scons将安装到${PYTHON_INSTALL_DIR}/bin/下

(3)安装chrpath

yum install chrpath 

(4)在gpsd源码下执行:

1、scons

2、scons install

3、 scons udev-install

(5)安装运行gpsd服务---install as service 

cd <gpsd source folder>
cp packaging/rpm/gpsd.init /etc/init.d/gpsd
chmod 755 /etc/init.d/gpsd
cp packaging/rpm/gpsd.sysconfig /etc/sysconfig/gpsd
chmod 644 /etc/sysconfig/gpsd
chkconfig gpsd on

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: 交叉编译工具arm-linux-gcc-3.4.1.tar.bz2是一个用于在x86架构的计算机上编译生成运行在ARM架构处理器上的软件的工具。ARM处理器通常用于嵌入式系统和移动设备。 这个工具是一个tar.bz2格式的压缩文件,需要通过解压缩来获取其中的文件。一般的解压缩软件如tar和bzip2可以用来解压这个文件。解压缩后,我们可以得到一个目录,其中包含了交叉编译工具链的各个组件。 这个工具中最关键的组件是arm-linux-gcc,它是一款ARM架构的C编译器。它允许我们在x86架构的计算机上编译ARM平台的C语言源代码,并生成适用于ARM处理器的可执行程序。除了C语言,arm-linux-gcc还支持C++和其他一些常用的编程语言。 使用交叉编译工具arm-linux-gcc,我们可以在开发软件时将代码编译为ARM平台可执行文件,而不需要在ARM设备上进行开发和编译。这样可以提高开发效率并简化调试过程。开发人员可以直接在自己的PC上编写和测试代码,然后使用交叉编译工具生成ARM平台可执行文件,再将其上传到ARM设备上运行。 总之,交叉编译工具arm-linux-gcc-3.4.1.tar.bz2是一个用于在x86架构计算机上编译ARM平台可执行文件的工具链,它提供了一系列的工具和组件,其中最重要的是arm-linux-gcc编译器。使用这个工具,开发人员可以在PC上进行ARM开发和调试,提高开发效率并简化部署过程。 ### 回答2: arm-linux-gcc-3.4.1.tar.bz2是一种交叉编译工具。交叉编译是指在一种操作系统上编译运行在另一种操作系统中运行的程序。 arm-linux-gcc-3.4.1.tar.bz2是专门为ARM架构设计的编译工具。ARM架构是一种广泛应用于嵌入式设备中的处理器架构。由于ARM处理器具有低功耗、低成本和高性能的特点,因此在移动设备、智能家居、工业自动化等领域得到广泛应用。 arm-linux-gcc-3.4.1.tar.bz2是GNU Compiler Collection(GCC)的一个特定版本。GCC是一种开源的编译器套件,支持多种编程语言,包括C、C++和Fortran等。通过使用arm-linux-gcc-3.4.1.tar.bz2,开发人员可以在主机操作系统(通常是x86架构)上编译适用于ARM处理器的程序。 交叉编译工具arm-linux-gcc-3.4.1.tar.bz2使用.tar.bz2的压缩格式打包。用户需要先解压缩该文件,然后根据安装指南进行安装和配置。安装成功后,用户可以使用该工具链进行ARM架构的程序开发和编译。 在交叉编译过程中,需要设置正确的目标架构和其他相关参数,以确保生成的可执行文件可以在ARM设备上正确运行。交叉编译工具可以生成与目标设备兼容的二进制代码,并处理与特定硬件平台相关的问题,如指令集、内存管理等。 通过使用arm-linux-gcc-3.4.1.tar.bz2,开发人员可以更加方便地进行ARM设备上的软件开发。这个工具链为ARM平台上的开发者提供了编译、链接和调试等必要的工具。它有助于简化开发流程,提高开发效率,并确保生成的程序在ARM设备上的正确运行。 ### 回答3: 交叉编译工具arm-linux-gcc-3.4.1.tar.bz2 是一个用于ARM架构的交叉编译工具。交叉编译是指在一种平台上开发、编译和生成另一种平台上可执行的程序。ARM是一种广泛应用于嵌入式设备的处理器架构,通过使用交叉编译工具,开发者可以在PC机上编写并编译ARM架构的程序。 arm-linux-gcc-3.4.1.tar.bz2 是一个tar压缩和bzip2压缩的文件。tar是一种文件打包的格式,bzip2是一种压缩格式。因此,首先需要将该文件解压缩。可以使用tar和bzip2命令来进行解压缩操作。 解压缩后,可以得到一个目录,里面包含了arm-linux-gcc-3.4.1工具链的文件。工具链是一组可以在一台计算机上生成可在另一种架构上运行的程序的工具。 在使用交叉编译工具之前,还需要将工具链的路径添加到系统的环境变量中,这样系统才能够找到正确的工具链。 使用arm-linux-gcc-3.4.1工具链可以在PC机上编写ARM架构的程序,并通过交叉编译生成可在ARM设备上运行的可执行程序。通过交叉编译,开发者可以更方便地开发和调试ARM设备的程序,同时提高了开发效率。 总之,arm-linux-gcc-3.4.1.tar.bz2 是一个交叉编译工具,通过解压缩该文件并配置环境变量后,开发者可以在PC机上编写并编译ARM架构的程序。这样可以简化ARM设备的开发和调试过程,提高开发效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

a746742897

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值