使用QT和cmake为uCLinux编译musescore

时间:2012-02-22 06:33:54

标签: qt path compilation cmake uclinux

我尝试了一些事情,但在尝试使用blackfin时仍然有这个错误:

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 lib编译uClinux内核,这样我就可以拥有合适的嵌入式QT。

然后我修改了musescore的Makefile,用uclinux编译器构建。我尝试了不同的东西,所以我在这里展示了最新的试用版:

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)

提前感谢您的帮助,

威廉

1 个答案:

答案 0 :(得分:0)

你需要在你的$ PATH中加入qmake。如果您更喜欢使用QT_QMAKE_EXECUTABLE,则必须指向实际的qmake二进制文件,而不是目录。

话虽如此,MuseScore 0.9.5是MuseScore的一个非常古老的版本,目前的版本是1.1和1.2即将推出。有关MuseScore的更多信息,请查看http://musescore.org,并随时联系freenode.net上的#musescore或http://musescore.org/mailing-list

上的开发人员邮件列表上的开发人员
相关问题