Skip to content

linker error for JACK symbols on macOS #199

@Pri-yan-shu

Description

@Pri-yan-shu

While compiling libremidi with JACK backend on macOS, build fails with error:

Undefined symbols for architecture x86_64:
  "_jack_get_cycle_times", referenced from:
      libremidi::midi_in_jack::process(unsigned int) in liblibremidi.a[3](midi_in.cpp.o)
  "_jack_ringbuffer_create", referenced from:
      libremidi::midi_out_jack_queued::midi_out_jack_queued(libremidi::output_configuration&&, libremidi::jack_output_configuration&&) in liblibremidi.a[4](midi_out.cpp.o)
  "_jack_ringbuffer_free", referenced from:
      libremidi::jack_queue::~jack_queue() in liblibremidi.a[4](midi_out.cpp.o)
      libremidi::midi_out_jack_queued::~midi_out_jack_queued() in liblibremidi.a[4](midi_out.cpp.o)
  "_jack_ringbuffer_peek", referenced from:
      libremidi::jack_queue::read(void*) const in liblibremidi.a[4](midi_out.cpp.o)
  "_jack_ringbuffer_read", referenced from:
      libremidi::jack_queue::read(void*) const in liblibremidi.a[4](midi_out.cpp.o)
  "_jack_ringbuffer_read_advance", referenced from:
      libremidi::jack_queue::read(void*) const in liblibremidi.a[4](midi_out.cpp.o)
      libremidi::jack_queue::read(void*) const in liblibremidi.a[4](midi_out.cpp.o)
  "_jack_ringbuffer_read_space", referenced from:
      libremidi::jack_queue::read(void*) const in liblibremidi.a[4](midi_out.cpp.o)
  "_jack_ringbuffer_write", referenced from:
      libremidi::midi_out_jack_queued::send_message(unsigned char const*, unsigned long) in liblibremidi.a[4](midi_out.cpp.o)
      libremidi::midi_out_jack_queued::send_message(unsigned char const*, unsigned long) in liblibremidi.a[4](midi_out.cpp.o)
  "_jack_ringbuffer_write_space", referenced from:
      libremidi::midi_out_jack_queued::midi_out_jack_queued(libremidi::output_configuration&&, libremidi::jack_output_configuration&&) in liblibremidi.a[4](midi_out.cpp.o)
      libremidi::midi_out_jack_queued::send_message(unsigned char const*, unsigned long) in liblibremidi.a[4](midi_out.cpp.o)
ld: symbol(s) not found for architecture x86_64
c++: error: linker command failed with exit code 1 (use -v to see invocation)

Similarly android builds fail with error: (I didn't see any reference of JACK supporting android, so maybe it is a build configuration issue here)

ld.lld: error: undefined symbol: jack_ringbuffer_create
>>> referenced by helpers.hpp:266 (/home/runner/work/mixxx/mixxx/lib/libremidi-5.4.3/include/libremidi/backends/jack/helpers.hpp:266)
>>>               midi_out.cpp.o:(libremidi::midi_out_jack_queued::midi_out_jack_queued(libremidi::output_configuration&&, libremidi::jack_output_configuration&&)) in archive lib/libremidi-5.4.3/liblibremidi.a

ld.lld: error: undefined symbol: jack_ringbuffer_write_space
>>> referenced by helpers.hpp:267 (/home/runner/work/mixxx/mixxx/lib/libremidi-5.4.3/include/libremidi/backends/jack/helpers.hpp:267)
>>>               midi_out.cpp.o:(libremidi::midi_out_jack_queued::midi_out_jack_queued(libremidi::output_configuration&&, libremidi::jack_output_configuration&&)) in archive lib/libremidi-5.4.3/liblibremidi.a
...

Any help?

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions