0

我尝试了几件事,但在尝试为 blackfin 制作 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 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)

在此先感谢您的帮助,

威廉

4

1 回答 1

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上的开发者邮件列表联系开发者

于 2012-02-22T08:16:38.527 回答