Ardour 8.4 build error

Hello everyone!
I try to build Ardour and failed with this error:
Checking for header exchndl.h : not found
Can anyone help me figure out this error?

I have never compiled Ardour, but I have successfully compiled a few programs on Linux. Are you trying to build Ardour on Windows? If so, it is my understanding you have a long road ahead. The official binaries are cross-compiled for Windows on Linux, and efforts to build Ardour natively on Windows have encountered significant challenges from what I have read on this forum.

It is not an error, it’s an optional include. configure check if DrMingw is available.

Ardour can be built just fine without it.

What is exchndl.h? What does this affect? How can I disable this?

exchndl.h is’nt exist in Ardour git, but needed for configuration. Why is this not an error?

  1. You seem to be building on Windows, which noone does succesfully, as mentioned above the windows build is actually built on Linux using MinGW

  2. You need to make sure you are passing the correct options to waf --configure to disable the need for this. If you feel like you are, post your waf configure and maybe someone can jump in, but I can count on one hand the number of people that have successfully compiled the windows build most likely (And I am not one of them).

    Seablade

you can use --no-dr-mingw configuration option if you wish to opt out.
see ./waf configure --help

Oh thanks, it works. I just didn’t read your previous message carefully.

Config options was:
./waf configure --dist-target=mingw --prefix=/mingw64 --with-backends=jack,dummy --no-dr-mingw

Then I tried to build, but got an error:
Build failed
→ task in ‘libpbd’ failed with exit status 1:
{task 2033631546288: cxxshlib basename.cc.2.o,base_ui.cc.2.o,boost_debug.cc.2.o,cartesian.cc.2.o,command.cc.2.o,configuration_variable.cc.2.o,convert.cc.2.o,controllable.cc.2.o,crossthread.cc.2.o,cpus.c
c.2.o,debug.cc.2.o,demangle.cc.2.o,downloader.cc.2.o,enumwriter.cc.2.o,event_loop.cc.2.o,enums.cc.2.o,epa.cc.2.o,error.cc.2.o,ffs.cc.2.o,file_archive.cc.2.o,file_utils.cc.2.o,fpu.cc.2.o,glib_event_source.cc.2.o
,id.cc.2.o,inflater.cc.2.o,locale_guard.cc.2.o,localtime_r.cc.2.o,malign.cc.2.o,md5.cc.2.o,microseconds.cc.2.o,mountpoint.cc.2.o,openuri.cc.2.o,pathexpand.cc.2.o,pbd.cc.2.o,pcg_rand.cc.2.o,pool.cc.2.o,progress.
cc.2.o,property_list.cc.2.o,pthread_utils.cc.2.o,reallocpool.cc.2.o,receiver.cc.2.o,resource.cc.2.o,search_path.cc.2.o,semutils.cc.2.o,shortpath.cc.2.o,signals.cc.2.o,spinlock.cc.2.o,stacktrace.cc.2.o,stateful_
diff_command.cc.2.o,stateful.cc.2.o,string_convert.cc.2.o,strreplace.cc.2.o,strsplit.cc.2.o,system_exec.cc.2.o,textreceiver.cc.2.o,timer.cc.2.o,timing.cc.2.o,tlsf.cc.2.o,transmitter.cc.2.o,undo.cc.2.o,utf8_util
s.cc.2.o,uuid.cc.2.o,whitespace.cc.2.o,xml++.cc.2.o,windows_special_dirs.cc.2.o,windows_timer_utils.cc.2.o,windows_mmcss.cc.2.o → pbd.dll,pbd.dll.a}
[‘C:\msys64\mingw64\bin/g++.exe’, ‘-Wl,–enable-auto-import’, ‘-Wl,–enable-auto-import’, ‘-Wl,–out-implib,libs/pbd/pbd.dll.a’, ‘-shared’, ‘-shared’, ‘libs/pbd/basename.cc.2.o’, ‘libs/pbd/base_ui.cc.2.o’, ’
libs/pbd/boost_debug.cc.2.o’, ‘libs/pbd/cartesian.cc.2.o’, ‘libs/pbd/command.cc.2.o’, ‘libs/pbd/configuration_variable.cc.2.o’, ‘libs/pbd/convert.cc.2.o’, ‘libs/pbd/controllable.cc.2.o’, ‘libs/pbd/crossthread.c
c.2.o’, ‘libs/pbd/cpus.cc.2.o’, ‘libs/pbd/debug.cc.2.o’, ‘libs/pbd/demangle.cc.2.o’, ‘libs/pbd/downloader.cc.2.o’, ‘libs/pbd/enumwriter.cc.2.o’, ‘libs/pbd/event_loop.cc.2.o’, ‘libs/pbd/enums.cc.2.o’, ‘libs/pbd/
epa.cc.2.o’, ‘libs/pbd/error.cc.2.o’, ‘libs/pbd/ffs.cc.2.o’, ‘libs/pbd/file_archive.cc.2.o’, ‘libs/pbd/file_utils.cc.2.o’, ‘libs/pbd/fpu.cc.2.o’, ‘libs/pbd/glib_event_source.cc.2.o’, ‘libs/pbd/id.cc.2.o’, ‘libs
/pbd/inflater.cc.2.o’, ‘libs/pbd/locale_guard.cc.2.o’, ‘libs/pbd/localtime_r.cc.2.o’, ‘libs/pbd/malign.cc.2.o’, ‘libs/pbd/md5.cc.2.o’, ‘libs/pbd/microseconds.cc.2.o’, ‘libs/pbd/mountpoint.cc.2.o’, ‘libs/pbd/ope
nuri.cc.2.o’, ‘libs/pbd/pathexpand.cc.2.o’, ‘libs/pbd/pbd.cc.2.o’, ‘libs/pbd/pcg_rand.cc.2.o’, ‘libs/pbd/pool.cc.2.o’, ‘libs/pbd/progress.cc.2.o’, ‘libs/pbd/property_list.cc.2.o’, 'libs/pbd/pthread_utils.cc.2.o
', ‘libs/pbd/reallocpool.cc.2.o’, ‘libs/pbd/receiver.cc.2.o’, ‘libs/pbd/resource.cc.2.o’, ‘libs/pbd/search_path.cc.2.o’, ‘libs/pbd/semutils.cc.2.o’, ‘libs/pbd/shortpath.cc.2.o’, ‘libs/pbd/signals.cc.2.o’, ‘libs
/pbd/spinlock.cc.2.o’, ‘libs/pbd/stacktrace.cc.2.o’, ‘libs/pbd/stateful_diff_command.cc.2.o’, ‘libs/pbd/stateful.cc.2.o’, ‘libs/pbd/string_convert.cc.2.o’, ‘libs/pbd/strreplace.cc.2.o’, ‘libs/pbd/strsplit.cc.2.
o’, ‘libs/pbd/system_exec.cc.2.o’, ‘libs/pbd/textreceiver.cc.2.o’, ‘libs/pbd/timer.cc.2.o’, ‘libs/pbd/timing.cc.2.o’, ‘libs/pbd/tlsf.cc.2.o’, ‘libs/pbd/transmitter.cc.2.o’, ‘libs/pbd/undo.cc.2.o’, ‘libs/pbd/utf
8_utils.cc.2.o’, ‘libs/pbd/uuid.cc.2.o’, ‘libs/pbd/whitespace.cc.2.o’, ‘libs/pbd/xml++.cc.2.o’, ‘libs/pbd/windows_special_dirs.cc.2.o’, ‘libs/pbd/windows_timer_utils.cc.2.o’, ‘libs/pbd/windows_mmcss.cc.2.o’, ‘-
oC:/Users/chern/Downloads/Ardour/build/libs/pbd/pbd.dll’, ‘-Wl,-Bstatic’, ‘-Wl,-Bdynamic’, ‘-lpthread’, ‘-lws2_32’, ‘-lwinmm’, ‘-lintl’, ‘-lregex’, ‘-ldbghelp’, ‘-lgobject-2.0’, ‘-lglib-2.0’, ‘-lintl’, ‘-lsigc-
2.0’, ‘-lglibmm-2.4’, ‘-lsigc-2.0’, ‘-lxml2’, ‘-lsndfile’, ‘-lgio-2.0’, ‘-lglib-2.0’, ‘-lintl’, ‘-lglibmm-2.4’, ‘-lgobject-2.0’, ‘-lsigc-2.0’, ‘-lgiomm-2.4’, ‘-larchive’, ‘-lcurl’, ‘-lole32’]

Build message without -v key:

[ 182/1796] Compiling libs/tk/ydk/win32/gdkimage-win32.c
C:/msys64/mingw64/bin/…/lib/gcc/x86_64-w64-mingw32/13.2.0/…/…/…/…/x86_64-w64-mingw32/bin/ld.exe: libs/pbd/pbd.cc.2.o: in function PBD::init()': C:\Users\chern\Downloads\Ardour\build/../libs/pbd/pbd.cc:89:(.text+0x10b): undefined reference to Glib::thread_supported()’
C:/msys64/mingw64/bin/…/lib/gcc/x86_64-w64-mingw32/13.2.0/…/…/…/…/x86_64-w64-mingw32/bin/ld.exe: C:\Users\chern\Downloads\Ardour\build/…/libs/pbd/pbd.cc:90:(.text+0x11c): undefined reference to `Glib::thr
ead_init(_GThreadFunctions*)’
collect2.exe: error: ld returned 1 exit status

Waf: Leaving directory `C:/Users/chern/Downloads/Ardour/build’
Build failed

Then i reconfigured with --no-ytk, tried to build and got error:
[ 98/1236] Compiling libs/midi++2/parser.cc
C:/msys64/mingw64/bin/…/lib/gcc/x86_64-w64-mingw32/13.2.0/…/…/…/…/x86_64-w64-mingw32/bin/ld.exe: libs/pbd/pbd.cc.2.o: in function PBD::init()': C:\Users\chern\Downloads\Ardour\build/../libs/pbd/pbd.cc:89:(.text+0x10b): undefined reference to Glib::thread_supported()’
C:/msys64/mingw64/bin/…/lib/gcc/x86_64-w64-mingw32/13.2.0/…/…/…/…/x86_64-w64-mingw32/bin/ld.exe: C:\Users\chern\Downloads\Ardour\build/…/libs/pbd/pbd.cc:90:(.text+0x11c): undefined reference to `Glib::thr
ead_init(_GThreadFunctions*)’
collect2.exe: error: ld returned 1 exit status

Waf: Leaving directory `C:/Users/chern/Downloads/Ardour/build’
Build failed
→ task in ‘libpbd’ failed with exit status 1 (run with -v to display more information)

As Seablade explained in a previous post, you are attempting something which no one else does. That means there is no one to help you, you will have to find how to correct the problems and then write a guide for others.

Ok, then i will just logging to this topic.