2013-11-28 63 views
0

我想爲我的raspi安裝omxplayer,但由於速度太慢,我希望在我的Ubuntu 11.10桌面上進行。我按照here的說明設置交叉編譯器(注意,crosstools不適用於我)。它提到如何運行它是這樣:如何在Ubuntu 11.10上交叉編譯OMXPlayer

現在你應該可以編譯你的CMake程序一樣簡單執行你這個額外的標誌-D CMAKE_TOOLCHAIN_FILE=$HOME/raspberrypi/pi.cmake

的CMake但是,這並不能幫助我,因爲我從未使用過cmake。如果我有一個標準安裝,如下所示:

./configure 
make 
make install 

哪裏-D CMAKE_TOOLCHAIN_FILE=$HOME/raspberrypi/pi.cmake適合到各是什麼?我是否只將make這兩個事件更改爲cmake = P我希望人們在回答這些問題時會考慮我們的noob程序員。這張海報讓我熱血沸騰,他的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) 
+0

嗨你找到答案了嗎?我被困住了。 TIA :) –

回答

0

是否omxplayer擁有的CMakeLists.txt?

然後運行這個命令:

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

沒有配置,沒有Makefile文件兩輪牛車。

+0

有**沒有**'CMakeLists.txt'文件。我是否運行以上來生成它,或者只有在文件已經存在的情況下? – puk

+0

如果存在,則運行該命令。因爲它不存在,所以您不要使用cmake來構建omxplayer。所以,你問的錯誤問題已經:)。 – steveire

+0

基本上我沒有槳的poops克里克? – puk

1

使用Openembedded進行Omxplayer編譯,它是編譯過程中最簡單的方法,無需擔心標誌設置太多。

meta-raspberrypi在這裏可用https://github.com/martiert/meta-raspberrypi

瞭解OE的一些基本知識然後開始您的工作。

爲了簡化我現有的項目,我嘗試了它,並取得了成功。

設置配置後運行make omxplayer。

否則,如果你不是在OE濫竽充數試圖瞭解BB文件omxplayer

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

所得到的包裝將輸出文件夾中

+0

要給你賞金,否則會浪費。不過,我會發佈一個答案,顯示我是如何做到的。 – puk

+0

嗨你找到答案了嗎?我被困住了。 TIA :) –