RV1126交叉编译astrometry.net

平台:RV1126

系统:buildroot

 

交叉编译了一个名为astrometry.net的工程,这个工程依赖C库和Python

 

1.错误尝试,但是设置依赖库可以参考这个方式

测试在Ubuntu中源码编译需要依赖下面的库

sudo apt-get install libbz2-dev

sudo apt-get install libcfitsio-dev

sudo apt-get install libjpeg-dev

其中bz2和jpeg在buildroot中已经存在,libcfitsio没有,需要手动添加

 

在Buildroot的package/目录下创建一个新目录,比如package/libcfitsio/,在其中创建一个Config.in文件,内容如下:

config BR2_PACKAGE_LIBCFITSIO
    bool "libcfitsio"
    depends on BR2_INSTALL_LIBSTDCPP
    help
      Library for manipulating FITS files.

comment "libcfitsio needs a toolchain w/ C++, threads"
    depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS

这个配置文件描述了libcfitsio的Buildroot包,指定了它的依赖关系和简短的帮助信息。

 

在Buildroot中添加libcfitsio的构建文件:

在package/libcfitsio/目录中创建一个libcfitsio.mk文件,内容如下:

LIBCFITSIO_VERSION = 3.47
LIBCFITSIO_SOURCE = libcfitsio-$(LIBCFITSIO_VERSION).tar.gz
LIBCFITSIO_SITE = https://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c
$(eval $(autotools-package))

在package下的Config.in中添加包含libcfitsio的Config.in

 

在Buildroot的主目录中运行以下命令:

make ARCH=arm rockchip_rv1126_rv1109_defconfig
make menuconfig

在菜单中找到并选择 Target packages -> Libraries -> libcfitsio。

选择后make savedefconfig

在SDK根目录运行

./build.sh rootfs

Buildroot将会自动下载libcfitsio的源代码,构建并将其包含到生成的根文件系统中。

 

同样的在~/workspace/RV1126SDK/buildroot/package/astrometry下增加

config BR2_PACKAGE_ASTROMETRY
    bool "astrometry"
    help
      This is a demo to add local app.

 

astrometry.mk

################################################################################
#
# ASTROMETRY
#
################################################################################

ASTROMETRY_VERSION:= 1.0.0
ASTROMETRY_SITE:= $(TOPDIR)/../app/astrometry
ASTROMETRY_SITE_METHOD:=local
ASTROMETRY_INSTALL_TARGET:=YES

define ASTROMETRY_BUILD_CMDS
    $(MAKE) CC="$(TARGET_CC)" LD="$(TARGET_LD)" -C $(@D) all
endef

define ASTROMETRY_INSTALL_TARGET_CMDS
    $(INSTALL) -D -m 0755 $(@D)/astrometry $(TARGET_DIR)/bin
endef

define ASTROMETRY_PERMISSIONS
    /bin/astrometry f 4755 0 0 - - - - -
endef

$(eval $(generic-package))

将astrometry源码放到~/workspace/RV1126SDK/app/下

 

在package下的Config.in中添加包含astrometry的Config.in

在Buildroot的主目录中运行以下命令:

make ARCH=arm rockchip_rv1126_rv1109_defconfig
make menuconfig

在菜单中找到并选择 Target packages -> Libraries -> astrometry

选择后make savedefconfig

在SDK根目录运行

./build.sh rootfs

编译报错

 

报错是因为astrometry.net所依赖的环境不对,如果全部往buildroot的框架里配置astrometry.net的环境会很复杂,而且有可能会把原来的正常的系统给配置坏

 

2、脱离rockchip SDK的buildroot框架,手动交叉编译测试(测试成功)

 

在网上查找交叉编译astrometry.net的资料,信息很少

关于交叉编译astrometry.net的内容

https://groups.google.com/g/astrometry/c/2jf-d4j_MBM

 

尝试不在buildroot框架里编译,直接交叉编译工程,然后移植到系统里

在~/workspace/astrometry.net-0.93/Makefile里找到一些关于CC的信息

通过export来设置CC,

export $(CC),可以看到设置成了交叉编译工具链

declare -x CC="arm-linux-gnueabihf-gcc"

 

在gsl-an下执行

CC=arm-linux-gnueabihf-gcc  LD=arm-linux-gnueabihf-ld ./configure --enable-shared=no --prefix=$(pwd)/stage --host=arm-linux-gnueabihf

 

直接make编译

hya@ubuntu:~/workspace/astrometry.net-0.93$ make
make -C gsl-an
make[1]: 进入目录“/home/hya/workspace/astrometry.net-0.93/gsl-an”
arm-linux-gnueabihf-gcc  -g -Wall -ffinite-math-only -fno-signaling-nans -pthread  -m64 -O3 -fomit-frame-pointer -DNDEBUG -fpic -fPIC -Winline -I../include -I../include/astrometry -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -DAN_GIT_REVISION='"0.93"' -DAN_GIT_DATE='"Mon_Dec_19_16:41:15_2022_-0500"' -DAN_GIT_URL='"https://github.com/dstndstn/astrometry.net"' -I.   -c -o blas/blas.o blas/blas.c
arm-linux-gnueabihf-gcc: 错误: unrecognized command line option ‘-m64’
<内置>: recipe for target 'blas/blas.o' failed
make[1]: *** [blas/blas.o] Error 1
make[1]: 离开目录“/home/hya/workspace/astrometry.net-0.93/gsl-an”
Makefile:92: recipe for target 'gsl-an' failed
make: *** [gsl-an] Error 2

打印报错有 -m64的选项,这个是arm64架构的编译信息,但是查找Makefile没有找到 -m64的信息&#x

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值