2012-11-27 60 views
1

我在Qt Creator中編寫了一個簡單的OpenCV應用程序(從Logitech Webcam Pro 9000中打開視頻流)。修復問題(CMake沒有找到它)與ffmepeg,x264,gstreamer等(找到http://www.ozbotz.org/opencv-installation/)應用程序的工作。使用CMake爲Pandaboard交叉編譯OpenCV Ubuntu

現在我想用CMake爲Pandaboard(Ubuntu)交叉編譯OpenCV,並將其與交叉編譯的Qt應用程序(如主機)結合使用。 按下配置按鈕後,我得到這個輸出。 http://depositfiles.com/files/se4r3bhrh

除了這個問題,我不知道如何在CMake中編寫「用於交叉編譯的工具鏈文件」和/或「指定用於交叉編譯的選項」,我害怕修復ffmpeg等問題(如在主機上)? 我有一個很好的HOWTO(來自ozbotz)的主機,但如何處理它交叉編譯Pandaboard?

有沒有人有這些問題的經驗/想法?

回答

0

交叉編譯OpenCV進行與主機的Ubuntu PC PANDABOARD,請按照下列步驟操作:

  • 安裝交叉編譯工具 在Ubuntu,你可以簡單地做它通過輸入端子如下:

    sudo apt-get install gcc-arm-linux-gnueabihf

    • 獲取的OpenCV源,並準備建立

      mkdir opencv
      cd opencv
      git clone https://github.com/Itseez/opencv.git
      cd opencv-master
      mkdir build
      cd build

    • 編輯Cmake變量以告訴它使用交叉編譯器。 gedit ../platforms/linux/arm-gnueabi.toolchain.cmake
      在文件中添加這些行,在合適的地方:
      set(CMAKE_C_COMPILER gcc-arm-linux-gnueabihf)
      set(CMAKE_CXX_COMPILER g++-arm-linux-gnueabihf)

      設置,如果你需要額外的C_FLAGS:
      set(CMAKE_C_FLAGS "-mcpu=cortex-a8 -O3 -mfloat-abi=hard -ftree-vectorize -ftree-vectorizer-verbose=9" CACHE STRING "c flags")

    • 運行cmake:
      cmake -DCMAKE_TOOLCHAIN_FILE=../platforms/linux/arm-gnueabi.toolchain.cmake ../

    • make
+0

由gcc-arm-linux-gnueabihf安裝的二進制文件似乎已經更名爲arm-linux-gnueabihf-gcc。同樣,現在g ++二進制文件似乎是arm-linux-gnueabihf-g ++。 –

+0

爲了獲得g ++編譯器,我還需要apt-get install g ++ - arm-linux-gnueabihf。使用'which arm-linux-gnueabihf-gcc'和'哪個arm-linux-gnueabihf-g ++'來查找二進制文件並確認它們已正確安裝。不知道爲什麼cmake腳本需要gcc和g ++,但我需要安裝兩者才能使默認cmake腳本正常工作。 –

+0

我們使用apt-get python-opencv進行了清理,該程序已經構建了arm(pandaboard)的二進制文件。 –