Compilation failed: recipe for target 'all' failed
Hello,
I am trying to compile MuseScore (because I want to add an Ukulele Low G Tablature -- The 'Low G' exists, but not as tablature notation, wich is more important than the scores, as the notes do change), without success.
I have a current Ubuntu system, which brings Qt 5.9, I followed the steps in the manuals, but running make
I get this:
...
Generating MOC compilation mocs_compilation.cpp
make[3]: Leaving directory '/home/paul/src/github/MuseScore/build.release'
[ 0%] Built target awl_autogen
make[3]: Leaving directory '/home/paul/src/github/MuseScore/build.release'
[ 0%] Built target mops2
make[2]: Leaving directory '/home/paul/src/github/MuseScore/build.release'
Makefile:151: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/home/paul/src/github/MuseScore/build.release'
Makefile:49: recipe for target 'release' failed
make: *** [release] Error 2
Any ideas what I am doing wrong?
Thank you very much.
Paul.
Comments
"because I want to add an Ukulele Low G Tablature -- The 'Low G' exists, but not as tablature notation,"
In standard notation, the Uke Low G is in "All Instruments" or type "uku" in the search box
It exists as tablature, you have only to change the Staff type (dropdown list, right column, see image below)
So, you can get various templates:
1) TAB only: TAB low G.mscz
2) Standard + Linked Tab: Linked TAB LowG.mscz
3) Standard + no linked Tab, if preferred (you have to copy-paste the content of a staff in the other) : Standard + not linked TAB staff.mscz
In reply to *"(because I want to add an… by cadiz1
Thanks very much, this helps!
So I don't have to compile the development version.
@paulwellnerbou, see the Ubuntu compile instructions under "Important Note: It is now necessary to install Qt 5.8, or later".
Try installing Qt 5.9 from the Qt website (via the online installer) rather than using the Ubuntu Qt packages. If you really want to use the Ubuntu package, make sure it is the development packages (name ends in "-dev" rather than just the runtime packages).
If you have installed Qt already then run
qmake -version
to check that it is in$PATH
.In reply to See the Ubuntu compile… by shoogle
As he wrote: have a current Ubuntu system, which brings Qt 5.9
In reply to As he wrote: have a current… by Jojo-Schmitz
I use Ubuntu myself. Just because there is a Qt package in Ubuntu's repositories (think App Store) does not mean it is installed on his machine, and it does not mean he has the development version (he might have the runtime version, which isn't enough).
In reply to I use Ubuntu myself. Just… by shoogle
Ah, OK
In reply to See the Ubuntu compile… by shoogle
Thanks. I installed all packages listed in the documentation for compiling MuseScore on Ubuntu. Is there something missing?
Nevertheless the change I wanted to make is not necessary, as @cadiz1 told me above.
Thank you anyway!
In reply to Thanks. I installed all… by paulwellnerbou
As @Jojo said, the real error is probably much higher up in the log. Without seeing the full log we're just guessing. (My guess is that Qt is installed but not in
$PATH
.)Please run your compile commands again and redirect the output into a text file so that we can see.
make revision
make debug 2>&1 | tee compile-log.txt
sudo make installdebug 2>&1 | tee -a compile-log.txt # only if previous command was successful
(Notice that the second
tee
command has-a
to append to the file rather than overwriting it.)Take the
compile-log.txt
text file and attach it to your reply here. (You may want to open it in a text editor first and remove any personally identifying information, such as your username. Just do Find and Replace (Ctrl+H) and replace your username with "USER" or similar).In reply to As @Jojo said, the real… by shoogle
Running
make debug
really exposes some warnings about some possible missing Qt things, available here (I did amake clean
before): https://privatebin.net/?66111f5c1ab75759#FXhM1fmrQQ3zwu68NPKV03BeIxoxGa…If there's something missing, maybe we can identify it to update and fix the documentation on how to compile MuseScore with the Ubuntu Qt packages. I would suggest anyway to provide a Dockerfile, as proof of concept environment.
In reply to Running make debug really… by paulwellnerbou
Line 3 of your compile log shows the contents of
$PATH
. If you installed Ubuntu's Qt development packages I would expect to see/usr/lib/x86_64-linux-gnu/qt5/bin
in$PATH
, but it's not there. It's possible that the packages have changed since the last time I used them and nowqmake
is a symlink in/usr/bin
rather than Qt'sbin
being added to$PATH
. What happens if you try to runqmake -version
?Further down it complains about QtWebEngine being missing, but probably all of Qt missing. Either it's not installed, or if it is installed then it's not in
$PATH
. You could trysudo apt install libqt5webengine5
, and double-checking all the other Qt development modules are installed too:However, I highly recommend using Qt provided by Qt rather than Qt provided by Ubuntu. Not only is it the official version of Qt, it also makes it easier to upgrade, downgrade, and even install multiple versions of Qt, so that you are always using the same version as the MuseScore developers. It's free for open source and doesn't interfere with system libraries.
By the way, there are Docker images for building MuseScore. If you want to use them you need to mount the MuseScore's code directory into the image. Run this command from MuseScore's code directory:
This will put you in a terminal inside the Docker image. From there you can do
cd /MuseScore
to access the code directory.The Docker files are mainly used for building the AppImages. If you want to build an AppImage then run the script
/MuseScore/build/Linux+BSD/portable/x86_64/Recipe
.If you want to build MuseScore normally (i.e. not as an AppImage) then you will need to study the Recipe file to see how to set
$PATH
.You will probably have more luck using the Docker images from the
2.3
branch thanmaster
.In reply to Line 3 of your compile log… by shoogle
"It's possible that the packages have changed since the last time I used them and now qmake is a symlink in /usr/bin rather than Qt's bin being added to $PATH. "
If Ubuntu is anything like Debian (which I assume) than OP is most likely using qtchooser which provides a binary and a link farm that redirects to the currently active binaries.
qtchooser -list-versions
will show all available/installed versions,qtchooser -print-env
will show the currently active setup. You can switch versions by setting the environment variable QT_SELECT to one of the versions listed.In reply to Line 3 of your compile log… by shoogle
You suggest:
"sudo apt-get install libqt4-dev qtbase5-dev qttools5-dev qttools5-dev-tools qtquick1-5-dev \
qtscript5-dev libqt5xmlpatterns5-dev libqt5svg5-dev libqt5webkit5-dev"
But those missing CMake test are from the qtwebengine5-dev package. Better add that to the build dependencies.
In reply to sudo apt-get install libqt4… by rmattes
Ah thanks, I couldn't find the dev package for QtWebEngine because it is missing the "libqt5" prefix. So what's needed it probably:
However, I still recommend using the official Qt. If someone else wants to test which Ubuntu packages are needed and update the instructions then be my guest.
libqt4-dev
andlibqt5webkit5-dev
are probably not needed any more.In reply to Line 3 of your compile log… by shoogle
Thanks,
oh, that's great, that there are docker images. I will try them next time. This makes it much more flexible and independent from the current state of my system, so that I can use the official Qt distribution without affecting other work on my system.
Thanks very much for the detailed reply. qtquick1-5-dev is not available, but anyway, I'll try with Qt next time.
In reply to Thanks,… by paulwellnerbou
Used properly the official Qt distribution never interferes with system libraries, no matter whether you are inside or outside a Docker image.
Only Ubuntu packages interfere with system libraries. ;)
In reply to As @Jojo said, the real… by shoogle
OP's first log file shows the meta object comiler did run, and that run was invoked from a CMake generated makefile - with missing Qt dependencies (or Qt's binaries not in PATH) neither would have worked.
If I read OP's compile log correctly, the build fails because of the well-known precompiled header problem (which I assumed got fixed some time ago?).
The real error got to be further up