1.下載壓縮包
下載路徑:https://download.csdn.net/download/cao849861802/11422879
下載的壓縮包的名字爲: freeradius_2.1.4.zip;
2.解壓安裝包:
得到文件目錄freeradius_2.1.4
3.製作Makefile
Makefile存放最好創建在freeradius_2.1.4的上層目錄,好管理;
Makefile中的內容爲:
export CROSS-COMPILE := /home/freeradius/Marvell_toolchain_201201/armv7-marvell-linux-gnueabi-softfp_i686/bin/arm-marvell-linux-gnueabi-
export CC = $(CROSS-COMPILE)gcc
export AS = $(CROSS-COMPILE)as
export AR = $(CROSS-COMPILE)ar
export LD = $(CROSS-COMPILE)ld
export STRIP = $(CROSS-COMPILE)strip
export OBJCOPY = $(CROSS-COMPILE)objcopy
freeradiusconf:
cd /home/freeradius/freeradius_2.1.4 && \
./configure --host=arm-linux --prefix=/home/freeradius/soft
freeradius:
cd /home/freeradius/freeradius_2.1.4 && make
freeradiusinstall:
cd /home/freeradius/freeradius_2.1.4 && make install
=========================================================================================
其中CROSS-COMPILE指的的編譯的工具鏈存放的位置,freeradiusconf中的--prefix指的是編譯make後執行make install的時候文件的存放路徑;
交叉編譯工具鏈目錄如下:
root@ecs-6ea7-0001:/home/freeradius/sdk/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi# ls
arm-poky-linux-gnueabi- arm-poky-linux-gnueabi-gcc-ar arm-poky-linux-gnueabi-nm
arm-poky-linux-gnueabi-addr2line arm-poky-linux-gnueabi-gcc-nm arm-poky-linux-gnueabi-objcopy
arm-poky-linux-gnueabi-ar arm-poky-linux-gnueabi-gcc-ranlib arm-poky-linux-gnueabi-objdump
arm-poky-linux-gnueabi-as arm-poky-linux-gnueabi-gcov arm-poky-linux-gnueabi-ranlib
arm-poky-linux-gnueabi-c++filt arm-poky-linux-gnueabi-gcov-tool arm-poky-linux-gnueabi-readelf
arm-poky-linux-gnueabi-cpp arm-poky-linux-gnueabi-gdb arm-poky-linux-gnueabi-size
arm-poky-linux-gnueabi-dwp arm-poky-linux-gnueabi-gprof arm-poky-linux-gnueabi-strings
arm-poky-linux-gnueabi-elfedit arm-poky-linux-gnueabi-ld arm-poky-linux-gnueabi-strip
arm-poky-linux-gnueabi-g++ arm-poky-linux-gnueabi-ld.bfd
arm-poky-linux-gnueabi-gcc arm-poky-linux-gnueabi-ld.gold
=========================================================================================
4.make freeradiusconf
5.make freeradius
6.make freeradiusinstall
遇到的問題及解決方法:
1.在編譯的過程中有時候可能會報錯(取決於編譯鏈是否好用)然後freeradius會將錯誤信息存放在/freeradius_2.1.4/config.log中,在文件中報錯如果是not found lib*。。。。,那麼就爲Makefile添加CFLAG 或者LIBOBJ之類的變量爲其添加庫的路徑;
2.在軟件運行過程中,如果編譯通過但是在實際的設備上運行過程中報某個庫找不到,查看上傳的軟件的目錄下的lib文件夾中是否有這個lib(1)如果有,則採用export LD_LIBRARY_PATH這種命令的形式爲其添加路徑;(2)如果目錄下沒有,則去工具鏈下查找利用find -name lib。。*查找,找到那個lib的位置將其弄出來上傳到設備的freeradius的目錄下的lib目錄下;