Linux下的软件移植,基本都是自己编译源码,步骤都是配置,然后编译,安装。

注意:

       配置的时候会设置—prefix参数,也就是我们最终安装的位置,如果不设置的话就是默认安装位置。将编译出来的库要放到开发板里面去。

在 tool 目录下新建名为“ncurses”目录,用于保存 ncurses 编译结果,一切准备就绪以后
就可以编译 ncureses 库了。进入到 ncureses 源码目录下,也就是刚刚解压出来的 ncurses-6.0 目
录中,首先是配置 ncureses。

export ARCH=arm
 export CROSS_COMPILE=arm-buildroot-linux-gnueabihf-
 export PATH=$PATH:/home/book/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin

一、移植库(ncurses),解压开后,在文件中可以发现有一个配置文件:configure。

1.解压文件: tar -vxzf ncurses-6.0.tar.gz

2.配置文件:

./configure --prefix=/home/book/linux/IMX6ULL/tool/ncurses --host=arm-linuxgnueabihf  --with-shared --without-profile --disable-stripping --withoutprogs --with-manpages --without-tests

configure 就是配置脚本;

--prefix 用于指定编译结果的保存目录,这里肯定将编译结果保存到我们前面创建的“ncurses”目录中。

--host 用于指定编译器前缀,这里设置为 “arm-linuxgnueabihf”;

3.编译:

配置成功以后输入“make”命令开始编译。

编译成功以后输入“make install”命令安装,安装的意思就是将编译出来的结果拷贝到--pfefix 指定的目录里面去。

4.include、 lib 和 share 这三个目录中存放的文件分别拷贝到开发板根文件系统中的/usr/include、 /usr/lib 和/usr/share 这三个目录中。

程序在板子上运行时,需要用到板子上/lib 或/usr/lib 下的库文件;程序运行时不需要头文件。

sudo cp lib/* /usr/lib/ -rfa
 sudo cp share/* /usr/share/ -rfa
 sudo cp include/* /usr/include/ -rfa

注:把头文件、库文件放到工具链目录里如果你编译的是一个库,请把得到的头文件、库文件放入工具链的 include、lib 目录里。 别的程序要使用这些头文件、库时,会很方便。

5.然后在开发板根目录的/etc/profile(没有的话自己创建一个)文件中添加如下所示内容:(不指定也没什么关系)

/etc/profile 文件
#!/bin/sh
LD_LIBRARY_PATH=/lib:/usr/lib:$LD_LIBRARY_PATH  //指定开发板中库的路径
export LD_LIBRARY_PATH
 
export TERM=vt100
export TERMINFO=/usr/share/terminfo

二、移植源码(minicom)

1 tar -vxzf minicom-2.7.1.tar.gz

2 cd minicom-2.7.1/     //进入 minicom 源码目录

3 ./configure CC=arm-linux-gnueabihf-gcc

--prefix=/home/book/linux/IMX6ULL/tool/minicom

--host=arm-linux-gnueabihf

CPPFLAGS=-I(链接的意思)/home/book/linux/IMX6ULL/tool/ncurses/include(前面编译库的存放的头文件路径) 

LDFLAGS=-L(链接的意思)/home/book/linux/IMX6ULL/tool/ncurses/lib(前面编译库的存放的lib的路径)

-enable-cfgdir=/etc/minicom//配置

CC 表示要使用的 gcc 交叉编译器;
--prefix 指定编译出来的文件存放目录,肯定要存放到我们前面创建的 minicom 目录中。 
--host 指定交叉编译器前缀;
CPPFLAGS 指定 ncurses 的头文件路径;
LDFLAGS 指定 ncurses 的库路径。

注:把头文件、库文件放到工具链目录里如果你编译的是一个库,请把得到的头文件、库文件放入工具链的 include、lib 目录里。 别的程序要使用这些头文件、库时,会很方便。

如果把得到的头文件、库文件放入工具链的 include、lib 目录里,就不需要CPPFLAGS与LDFLAGS了。

4 配置成功以后执行如下命令编译并安装:
make
make install

5.将 minicom 目录中 bin 子目录下的所有文件拷贝到开发板根目录中的/usr/bin 目录下,命令
如下:
sudo cp bin/* /usr/bin/
完成以后在开发板中输入“minicom -v”来查看 minicom 工作是否正常。

6.输入如下命令打开 minicom 配置界面:
minicom -s

7.如果执行第6步出现问题,解决方法。

新建/etc/passwd 文件,然后在 passwd 文件里面输入如下所示内容:
  /etc/passwd 文件
root:x:0:0:root:/root:/bin/sh