2012-02-22 66 views
0

我嘗試一些東西,但試圖向CMake爲Blackfin處理器的時候我還是有這個錯誤:一種編譯uCLinux操作系統musescore與QT和cmake的

CMake Error at CMakeLists.txt:116 (message): 

    Fatal error: QT (version >= 4.5.0) required. Cmake tries to detect QT4 by 

    searching for 'qmake' in your PATH.If you have QT4 installed, make sure 

    qmake is found in your PATH. If you compiled QT4 yourself make sure your 

    new qmake ist found _first_ in your PATH. 

我試圖編譯musescore 0.9.5源以保持與uClinux中現有QT版本的兼容性

我所做的是用QT庫編譯uClinux內核,這樣我就可以擁有合適的嵌入式QT。

然後我修改了使用uclinux編譯器構建musescore的Makefile。我已經嘗試不同的事情,所以我在這裏展示最新的試驗:

bfin: 

     mkdir build; 

     mkdir install;        \ 

     cd build; 

     cmake -DCMAKE_TOOLCHAIN_FILE=bfin.cmake -DCMAKE_VERBOSE_MAKEFILE=TRUE -\ 

DQT_QMAKE_EXECUTABLE=/home/william/Development_new/Music_Recognition/code/uCLin\ 

ux/rev2011R1/uclinux-dist/lib/qt-embedded/build-qt-embedded-linux-opensource-sr\ 

c-4.5.1/bin   -libdir=/home/william/Development_new/Music_Recognition/cod\ 

e/uCLinux/rev2011R1/uclinux-dist/lib/qt-embedded/build-qt-embedded-linux-openso\ 

urce-src-4.5.1/lib \ 
       -DCMAKE_INSTALL_PREFIX="${PREFIX}" \ 
       mscore; 

中的CMakeLists.txt我也補充一下:

link_directories(/home/william/Development_new/Music_Recognition/code/uCLinux/r\ 

ev2011R1/uclinux-dist/lib/qt-embedded/build-qt-embedded-linux-opensource-src-4.\ 

5.1/bin) 



SET(CMAKE_MODULE_PATH /home/william/Development_new/Music_Recognition/code/uCLi\ 

nux/rev2011R1/uclinux-dist/lib/qt-embedded/build-qt-embedded-linux-opensource-s\ 

rc-4.5.1/bin) 



SET(CMAKE_PREFIX_PATH /home/william/Development_new/Music_Recognition/code/uCLi\ 

nux/rev2011R1/uclinux-dist/lib/qt-embedded/build-qt-embedded-linux-opensource-s\ 

rc-4.5.1/bin) 



SET(QT_QMAKE_EXECUTABLE /home/william/Development_new/Music_Recognition/code/uC\ 

Linux/rev2011R1/uclinux-dist/lib/qt-embedded/build-qt-embedded-linux-opensource\ 

-src-4.5.1/bin) 

我bfin.cmake看起來像:

# this one is important              

SET(CMAKE_SYSTEM_NAME Linux) 
#this one not so much              

SET(CMAKE_SYSTEM_VERSION 1) 


#                   

SET (BFIN "/opt/uClinux/bfin-uclinux") 


# specify the cross compiler             
SET(CMAKE_C_COMPILER ${BFIN}/bin/bfin-uclinux-gcc) 

SET(CMAKE_CXX_COMPILER ${BFIN}/bin/bfin-uclinux-g++) 
SET(CMAKE_LINKER  ${BFIN}/bin/bfin-uclinux-ld) 


#/opt/uClinux/bfin-uclinux/bfin-uclinux/runtime/usr/lib      

LINK_DIRECTORIES("${BFIN}/usr/lib") 



SET(CMAKE_FIND_ROOT_PATH 

    /opt/uClinux/bfin-uclinux/bfin-uclinux 

    /opt/uClinux/bfin-linux-uclibc 

    /opt/uClinux/bfin-linux-uclibc/bfin-linux-uclibc/runtime) 


# search for programs in the build host directories       

SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) 
# for libraries and headers in the target directories      

SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) 

SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) 

在此感謝您的幫助,

William

回答

0

您需要將qmake放入您的$ PATH中。如果你喜歡使用QT_QMAKE_EXECUTABLE,它必須指向實際的qmake二進制文件,而不是目錄。這就是說,MuseScore 0.9.5是MuseScore的一個非常非常老的版本,當前版本是1.1和1.2即將推出。檢查http://musescore.org有關MuseScore的更多信息,請不要猶豫與freenode.net上的#musescore或開發人員郵件列表上的開發人員聯繫http://musescore.org/mailing-list

+0

謝謝,我忘了提及我在我的.bashrc中添加了路徑。請注意,我正在談論交叉編譯到blackfin uCLinux,而不是Linux x86。無論如何,它應該工作一樣。對於繆斯核心,在我的PC上是的,我使用最新的,但在0.9.5以上,他們正在使用qt 4.6,但尚未支持blackfin uCLinux。因此我不得不降級以嘗試使其工作。請注意QT_QMAKE_EXECUTABLE與qmake二進制不工作,我之前嘗試過。 – 2012-02-23 02:41:56