【问题标题】:compiling musescore for uCLinux with QT and cmake使用 QT 和 cmake 为 uCLinux 编译 musescore
【发布时间】:2012-02-22 06:33:54
【问题描述】:

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

提前感谢您的帮助,

威廉

【问题讨论】:

    标签: qt path compilation cmake uclinux


    【解决方案1】:

    你需要把 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 联系开发人员

    【讨论】:

    • 谢谢,我忘了提到我已经在我的 .bashrc 中添加了路径。请注意,我在这里谈论的是交叉编译到 blackfin uCLinux,而不是 Linux x86。无论如何,它应该工作相同。对于 muse 核心,在我的 PC 上是的,我使用的是最新版本,但在 0.9.5 之后,他们使用的是 qt 4.6,blackfin uCLinux 尚不支持。因此,我不得不降级以使其正常工作。请注意,带有 qmake 二进制文件的 QT_QMAKE_EXECUTABLE 也不起作用,我之前尝试过。
    猜你喜欢
    • 2013-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-31
    • 1970-01-01
    • 2012-09-19
    • 2013-09-11
    • 1970-01-01
    相关资源
    最近更新 更多