Skip to content

linker error for JACK symbols on macOS #199

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

Fields

No fields configured for Bug.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions