【问题标题】:How to Cross Compile OMXPlayer on Ubuntu 11.10如何在 Ubuntu 11.10 上交叉编译 OMXPlayer
【发布时间】:2013-11-28 06:33:56
【问题描述】:

我正在尝试为我的 raspi 安装 omxplayer,但由于速度太慢,我希望在我的 Ubuntu 11.10 桌面上安装。我已按照here 所述设置交叉编译器的说明进行操作(请注意,交叉工具对我不起作用)。它提到了如何运行它:

现在你应该能够像使用这个额外的标志-D CMAKE_TOOLCHAIN_FILE=$HOME/raspberrypi/pi.cmake执行你的cmake一样简单地编译你的cmake程序了

但这对我没有帮助,因为我从未使用过cmake。如果我有这样的标准安装:

./configure
make
make install

-D CMAKE_TOOLCHAIN_FILE=$HOME/raspberrypi/pi.cmake 在哪里适合所有这些?我是否只是将make 的两次出现都更改为cmake =P 我希望人们在回答这些问题时会认为我们是菜鸟程序员。这张海报让我和他的response 热血沸腾。我已经包含了 omxplayer Makefile.include 文件,我认为这是我必须进行一些重大更改的地方,以及我的交叉编译 .cmake 文件,有人可以向我描述我必须进行哪些更改以及它们如何对应彼此。

Makefile.include:

USE_BUILDROOT=0
FLOAT=hard

ifeq ($(USE_BUILDROOT), 1)
BUILDROOT   :=/opt/xbmc-bcm/buildroot
SDKSTAGE    :=$(BUILDROOT)/output/staging
TARGETFS    :=$(BUILDROOT)/output/target
TOOLCHAIN   :=$(BUILDROOT)/output/host/usr/
HOST            :=arm-unknown-linux-gnueabi
SYSROOT     :=$(BUILDROOT)/output/host/usr/arm-unknown-linux-gnueabi/sysroot
else
BUILDROOT   :=/opt/bcm-rootfs
SDKSTAGE    :=/opt/bcm-rootfs
TARGETFS    :=/opt/bcm-rootfs
TOOLCHAIN   :=/home/dc4/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/
HOST        :=arm-linux-gnueabihf
#SYSROOT        :=$(TOOLCHAIN)/arm-bcm2708hardfp-linux-gnueabi/sysroot
SYSROOT     :=/opt/bcm-rootfs
endif

JOBS=7

CFLAGS          := -isystem$(PREFIX)/include
CXXFLAGS        := $(CFLAGS)
CPPFLAGS        := $(CFLAGS)
LDFLAGS         := -L$(BUILDROOT)/lib
LD                  := $(TOOLCHAIN)/bin/$(HOST)-ld --sysroot=$(SYSROOT)
CC                  := $(TOOLCHAIN)/bin/$(HOST)-gcc --sysroot=$(SYSROOT)
CXX         := $(TOOLCHAIN)/bin/$(HOST)-g++ --sysroot=$(SYSROOT)
OBJDUMP         := $(TOOLCHAIN)/bin/$(HOST)-objdump
RANLIB          := $(TOOLCHAIN)/bin/$(HOST)-ranlib
STRIP               := $(TOOLCHAIN)/bin/$(HOST)-strip
AR                  := $(TOOLCHAIN)/bin/$(HOST)-ar
CXXCP           := $(CXX) -E
PATH                := $(PREFIX)/bin:$(BUILDROOT)/output/host/usr/bin:$(PATH)

CFLAGS          += -pipe -mfloat-abi=$(FLOAT) -mcpu=arm1176jzf-s -fomit-frame-pointer -mabi=aapcs-linux -mtune=arm1176jzf-s -mfpu=vfp -Wno-psabi -mno-apcs-stack-check -g -mstructure-size-boundary=32 -mno-sched-prolog
LDFLAGS         += -L$(SDKSTAGE)/lib -L$(SDKSTAGE)/usr/lib -L$(SDKSTAGE)/opt/vc/lib/ -Lpcre/build
#INCLUDES       += -isystem$(SDKSTAGE)/usr/include -isystem$(SDKSTAGE)/opt/vc/include -isystem$(SYSROOT)/usr/include -isystem$(SDKSTAGE)/opt/vc/include/interface/vcos/pthreads -isystem$(SDKSTAGE)/usr/include/freetype2
INCLUDES        += -isystem$(SDKSTAGE)/opt/vc/include -isystem$(SYSROOT)/usr/include -isystem$(SDKSTAGE)/opt/vc/include/interface/vcos/pthreads -Ipcre/build -Iboost-trunk -Ifreetype2/include

raspi.cmake:

SET(CMAKE_SYSTEM_NAME Linux)
SET(CMAKE_SYSTEM_VERSION 1)
SET(CMAKE_C_COMPILER /mnt/UEF/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-gcc)
SET(CMAKE_CXX_COMPILER /mnt/UEF/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-g++)
SET(CMAKE_FIND_ROOT_PATH /mnt/UEF/rootfs)
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

【问题讨论】:

  • 您好,您找到答案了吗?我被它困住了。 TIA :)

标签: cmake arm cross-compiling ubuntu-11.10


【解决方案1】:

使用 Openembedded for OMXPlayer 进行编译,这是编译内容最简单的方法,无需过多担心标志设置。

meta-raspberrypi 可在此处找到https://github.com/martiert/meta-raspberrypi

了解OE 的一些基础知识然后开始你的工作。

为了在我现有的项目中简单,我尝试了一下,我成功了。

设置好配置后,运行名为“omxplayer”的make。

否则,如果你对“OE”不够好,就试着理解名为“OMXPlayer”的BB文件。

http://git.yoctoproject.org/cgit/cgit.cgi/meta-raspberrypi/tree/recipes-multimedia/omxplayer/omxplayer_git.bb?h=master

并尝试通过检查依赖项来单独交叉编译。

添加 如果您不熟悉开放式嵌入式 Go,请使用 BUildroot,它比 OE 更容易。

git clone https://github.com/nezticle/RaspberryPi-BuildRoot.git

cd RaspberryPi-BuildRoot

make raspberrypi_defconfig

make menuconfig

这里位置:│
│ -> 目标的包选择│
│ -> 树莓派

在这里,OMXPlayer 将被启用。

最后:

make

生成的包将在输出文件夹中。

【讨论】:

  • 要给你赏金,否则就浪费了。但是,我会发布一个答案,说明我是如何做到的。
  • 您好,您找到答案了吗?我被它困住了。 TIA :)
【解决方案2】:

omxplayer 有 CMakeLists.txt 吗?

然后运行这个:

cd omxplayer
mkdir build
cd build
cmake .. -DCMAKE_TOOLCHAIN_FILE=$HOME/raspberrypi/pi.cmake
make
make install

没有配置,没有 Makefile 黑客。

【讨论】:

  • 没有没有 CMakeLists.txt 文件。我是运行上面的来生成它,还是只在文件已经存在的情况下?
  • 如果该命令存在,则运行该命令。由于它不存在,因此您不使用 cmake 来构建 omxplayer。所以,你已经问错问题了:)。
  • 基本上我在没有桨的情况下就在小溪上?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-05
  • 1970-01-01
  • 2012-03-07
  • 1970-01-01
  • 2016-09-22
  • 1970-01-01
相关资源
最近更新 更多