Error compiling Ardour 7.4


I try to compile / install with the usual procedure and I get this error:

Descargas/Ardour-7.4.0$ ./waf
Waf: Entering directory `/home/david/Descargas/Ardour-7.4.0/build’
Using packaged revision
[ 169/1210] Compiling libs/ardour/
[ 170/1210] Compiling libs/ardour/
[ 171/1210] Compiling libs/ardour/
[ 172/1210] Compiling libs/ardour/
[ 173/1210] Compiling libs/ardour/
[ 174/1210] Compiling libs/ardour/
[ 175/1210] Compiling libs/ardour/
[ 176/1210] Compiling libs/ardour/
[ 177/1210] Compiling libs/ardour/
[ 178/1210] Compiling libs/ardour/
[ 179/1210] Compiling libs/ardour/
[ 180/1210] Compiling libs/ardour/
[ 181/1210] Compiling libs/ardour/
[ 182/1210] Compiling libs/ardour/
[ 183/1210] Compiling libs/ardour/
[ 184/1210] Compiling libs/ardour/
[ 206/1210] Compiling libs/ardour/
[ 207/1210] Compiling libs/ardour/
[ 208/1210] Compiling libs/ardour/
[ 209/1210] Compiling libs/ardour/
[ 212/1210] Compiling libs/ardour/
In file included from …/libs/ardour/ardour/lv2_plugin.h:35,
from …/libs/ardour/
…/libs/ardour/ardour/uri_map.h:30:10: fatal error: lv2/ No such file or directory
30 | #include <lv2/>
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.

…/libs/ardour/ In member function ‘virtual void ARDOUR::PortExportChannel::read(const ARDOUR::Buffer*&, ARDOUR::samplecnt_t) const’:
…/libs/ardour/ warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘long int’ [-Wsign-compare]
115 | if (ports.size () == 1 && _delaylines.size () == 1 && !ports.begin ()->expired () && _delaylines.front ()->bufsize () == _buffer_size + 1) {
| ~~~~~~~~~~~~~~~^

Waf: Leaving directory `/home/david/Descargas/Ardour-7.4.0/build’
Build failed
→ task in ‘libardour’ failed with exit status 1 (run with -v to display more information)

I always do the same for installation but this time the compilation procedure fails.

Any suggestion?


You need to install the development (-dev or -devel, depending on distro) package for lv2 first.

As the error says, it can’t find lv2/ in /usr/include or /usr/local/include

I already have it…

lv2-dev is already in its latest version (6:1.18.10-1kxstudio2).

run find /usr/include -name lv2.h , and the same for /usr/local, and see if there actually is an lv2.h file in the lv2/ subdirectory
It may have gone missing or got moved somehow, so you may have to reinstall lv2-dev

See & the following few commits - you might need ardour 7.4-60 or later source to build with latest lv2.

This is a duplicate of

Honestly, I don’t know what to do with this…

Can you explain what files I need to modify?


Does the find command I suggested show that there is an lv2.h file in your lv2/ subdir?
If it’s somewhere else you need to do some work.

One way would be to use the git command and download the very latest version of Ardour’s source code, which apparently has a workaround for this:
git clone --depth=1

Another would possibly be to revert to the previous version you supposedly had of lv2.
Or to copy or make symlinks so the .h files end up where Ardour wants them.

This will cause an issue. Ardour/git uses git describe to detect the version, which will fail if you only get the latest commit.

I see.

Davidrotger can either omit that --depth=1 and download the entire repository or do a workaround and run something like git tag -a -m "Newer" 7.4.1 before running ./waf , to create a fake tag for it to detect

Solved with Ardour 7.4.66


This topic was automatically closed 91 days after the last reply. New replies are no longer allowed.