Configure交叉编译

交叉编译Application或Library时,主要通过配置configure的--host, --build和--target选项。--host指定软件运行平台,若未指定则自动检测。--build指安装平台,默认等于--host。--target用于程序语言工具,如未指定也采用--host的值。通常只需设置--host,同时用LDFLAGS指定动态库路径。完成这些步骤后,确保交叉编译工具链在PATH中,查看GCC前缀并执行configure。" 105980815,7822446,for of/for in/forEach在JavaScript业务场景的应用,"['JavaScript', '数组遍历', 'for循环', '迭代器']

交叉编译某个Application 或者 Library时,通常需要 ./configure 来生成对应的 Makefile
./configure 最关键的三个选项是:

--host=HOST
是指定软件运行的系统平台.如果没有指定,将会运行`config.guess'来检测.

--build=BUILD
是指定软件包安装的系统平台.如果没有指定,默认值将是'--host'选项的值.

--target=GARGET
是指定软件面向(target to)的系统平台.这主要在程序语言工具如编译器和汇编器上下文中起作用.如果没有指定,默认将使用'--host'选项的值. 


 --prefix=/work/gaoht/gsoap/target
是指定软件安装的位置

一般而言,我们只要指定 --host 就可以了
记住:--host 指定的是交叉编译工具链的前缀


 LDFLAGS="-L/usr/non-standard-path/python/lib"

指定动态库的路径

 

1.下载源代码、解压,切换到Source Code的目录下。(注:其中的AAA是 需要文件名称)

#cd /home/lumi/
#tar xvfz AAA.tar.gz
#cd AAA

2.交叉编译
确保交叉编译工具链的bin文件在PATH环境变量里,请先透过命令检查下,如果不在,需要手动添加进来。

确认OK之后,查看GCC等相关编译工具的前缀, 这个需要在执行configure时,指定host的

#echo $PATH
/usr/local/bin:/bin:/usr/bin:/opt/xxx/bin/
#ls /opt/xxx/bin/
arm-brcm-linux-gnueabi-add
配置交叉编译 GStreamer 需要根据目标平台的架构和操作系统进行适当的设置。以下是一个通用的流程,适用于大多数嵌入式 Linux 平台。 ### 准备工作 1. **安装依赖项** 在主机系统上安装必要的构建工具和依赖库: ```bash sudo apt-get install build-essential libtool autoconf automake flex bison libglib2.0-dev ``` 2. **获取 GStreamer 源码** 使用 Git 克隆官方仓库: ```bash git clone https://gitlab.freedesktop.org/gstreamer/gstreamer.git cd gstreamer ``` ### 配置交叉编译环境 1. **创建构建目录** 推荐使用单独的构建目录以避免污染源码树: ```bash mkdir build && cd build ``` 2. **准备交叉编译工具链** 确保你已经安装了适用于目标平台的交叉编译工具链。例如,对于 ARM 架构,你可能需要 `arm-linux-gnueabi-gcc` 或 `arm-linux-gnueabihf-gcc`。 3. **使用 `meson` 配置交叉编译** GStreamer 使用 Meson 构建系统,可以通过交叉编译配置文件指定目标平台的信息。创建一个交叉编译配置文件 `cross-file.txt`,内容如下(以 ARM 架构为例): ```ini [host_machine] system = 'linux' cpu_family = 'arm' cpu = 'armv7' endian = 'little' [binaries] c = 'arm-linux-gnueabihf-gcc' cpp = 'arm-linux-gnueabihf-g++' ar = 'arm-linux-gnueabihf-ar' strip = 'arm-linux-gnueabihf-strip' pkgconfig = 'arm-linux-gnueabihf-pkg-config' [properties] needs_exe_wrapper = true ``` 4. **运行 `meson` 配置命令** 使用 `meson` 命令配置交叉编译环境: ```bash meson .. --cross-file cross-file.txt --prefix=/usr/local/arm-gst ``` 5. **构建与安装** 使用 `ninja` 构建并安装: ```bash ninja ninja install ``` ### 验证交叉编译结果 1. **检查生成的二进制文件** 确保生成的可执行文件是为目标平台编译的: ```bash file /usr/local/arm-gst/bin/gst-launch-1.0 ``` 输出应显示目标架构,例如: ``` /usr/local/arm-gst/bin/gst-launch-1.0: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 3.2.0, not stripped ``` 2. **部署到目标设备** 将编译好的 GStreamer 安装目录通过 `scp` 或其他方式复制到目标设备,并确保目标设备上的运行环境支持所需的库文件。 ### 可选:使用 `gst-build` 工具简化流程 GStreamer 官方提供了一个名为 `gst-build` 的工具,可以简化整个构建过程,尤其是对于交叉编译场景。你可以克隆 `gst-build` 仓库并使用其提供的交叉编译支持: ```bash git clone https://gitlab.freedesktop.org/gstreamer/gst-build.git cd gst-build meson _build --cross-file ../cross-file.txt ninja -C _build ``` ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值