簡體   English   中英

如何在 Ubuntu 11.10 上交叉編譯 OMXPlayer

[英]How to Cross Compile OMXPlayer on Ubuntu 11.10

我正在嘗試為我的 raspi 安裝 omxplayer,但由於它太慢了,我希望在我的 Ubuntu 11.10 桌面上安裝。 我已按照此處所述的設置交叉編譯器的說明進行操作(注意,crosstools 對我不起作用)。 它提到了如何運行它:

現在你應該能夠像使用這個額外的標志執行 cmake 一樣簡單地編譯你的 cmake 程序-D CMAKE_TOOLCHAIN_FILE=$HOME/raspberrypi/pi.cmake

但這對我沒有幫助,因為我從未使用過cmake 如果我有這樣的標准安裝:

./configure
make
make install

-D CMAKE_TOOLCHAIN_FILE=$HOME/raspberrypi/pi.cmake適合所有這些? 我是否只是將make兩次出現更改為cmake =PI 希望人們在回答這些問題時會認為我們是菜鳥程序員。 這一張海報讓我熱血沸騰,他的反應 我已經包含了 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)

使用 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 for BUildroot它比OE更容易。

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

cd RaspberryPi-BuildRoot

make raspberrypi_defconfig

make menuconfig

地點:│
│ -> 目標的包選擇│
│ -> 樹莓派

在這里,將啟用 OMXPlayer。

最后:

make

生成的包將在輸出文件夾中。

omxplayer 有 CMakeLists.txt 嗎?

然后運行這個:

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

沒有配置,沒有 Makefile 黑客。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM