[英]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 文件。
並嘗試通過檢查依賴項來單獨交叉編譯。
附加如果您不熟悉開放式嵌入式 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.