xthexder / go-jack

Go bindings for Jack Audio Connection Kit
MIT License
75 stars 20 forks source link

Compile errors on macOS 10.13.6 #12

Open kai5263499 opened 6 years ago

kai5263499 commented 6 years ago

When I try to run the passthrough example on my macbook I get the following:

± go run passthrough.go
# github.com/xthexder/go-jack
Undefined symbols for architecture x86_64:
  "_jack_activate", referenced from:
      __cgo_c2d4f1e0b1b0_Cfunc_jack_activate in _x004.o
     (maybe you meant: __cgo_c2d4f1e0b1b0_Cfunc_jack_activate)
  "_jack_client_close", referenced from:
      __cgo_c2d4f1e0b1b0_Cfunc_jack_client_close in _x004.o
     (maybe you meant: __cgo_c2d4f1e0b1b0_Cfunc_jack_client_close)
  "_jack_client_name_size", referenced from:
      __cgo_c2d4f1e0b1b0_Cfunc_jack_client_name_size in _x004.o
     (maybe you meant: __cgo_c2d4f1e0b1b0_Cfunc_jack_client_name_size)
  "_jack_client_open", referenced from:
      _jack_client_open_go in _x004.o
      __cgo_c2d4f1e0b1b0_Cfunc_jack_client_open_go in _x004.o
     (maybe you meant: __cgo_c2d4f1e0b1b0_Cfunc_jack_client_open_go, _jack_client_open_go )
  "_jack_connect", referenced from:
      __cgo_c2d4f1e0b1b0_Cfunc_jack_connect in _x004.o
     (maybe you meant: __cgo_c2d4f1e0b1b0_Cfunc_jack_connect)
  "_jack_disconnect", referenced from:
      __cgo_c2d4f1e0b1b0_Cfunc_jack_disconnect in _x004.o
     (maybe you meant: __cgo_c2d4f1e0b1b0_Cfunc_jack_disconnect)
  "_jack_free", referenced from:
      __cgo_c2d4f1e0b1b0_Cfunc_jack_free in _x004.o
     (maybe you meant: __cgo_c2d4f1e0b1b0_Cfunc_jack_free)
  "_jack_get_buffer_size", referenced from:
      __cgo_c2d4f1e0b1b0_Cfunc_jack_get_buffer_size in _x004.o
     (maybe you meant: __cgo_c2d4f1e0b1b0_Cfunc_jack_get_buffer_size)
  "_jack_get_client_name", referenced from:
      __cgo_c2d4f1e0b1b0_Cfunc_jack_get_client_name in _x004.o
     (maybe you meant: __cgo_c2d4f1e0b1b0_Cfunc_jack_get_client_name)
  "_jack_get_ports", referenced from:
      __cgo_c2d4f1e0b1b0_Cfunc_jack_get_ports in _x004.o
     (maybe you meant: __cgo_c2d4f1e0b1b0_Cfunc_jack_get_ports)
  "_jack_get_sample_rate", referenced from:
      __cgo_c2d4f1e0b1b0_Cfunc_jack_get_sample_rate in _x004.o
     (maybe you meant: __cgo_c2d4f1e0b1b0_Cfunc_jack_get_sample_rate)
  "_jack_is_realtime", referenced from:
      __cgo_c2d4f1e0b1b0_Cfunc_jack_is_realtime in _x004.o
     (maybe you meant: __cgo_c2d4f1e0b1b0_Cfunc_jack_is_realtime)
  "_jack_midi_clear_buffer", referenced from:
      __cgo_c2d4f1e0b1b0_Cfunc_jack_midi_clear_buffer in _x004.o
     (maybe you meant: __cgo_c2d4f1e0b1b0_Cfunc_jack_midi_clear_buffer)
  "_jack_midi_event_get", referenced from:
      __cgo_c2d4f1e0b1b0_Cfunc_jack_midi_event_get in _x004.o
     (maybe you meant: __cgo_c2d4f1e0b1b0_Cfunc_jack_midi_event_get)
  "_jack_midi_event_write", referenced from:
      __cgo_c2d4f1e0b1b0_Cfunc_jack_midi_event_write in _x004.o
     (maybe you meant: __cgo_c2d4f1e0b1b0_Cfunc_jack_midi_event_write)
  "_jack_midi_get_event_count", referenced from:
      __cgo_c2d4f1e0b1b0_Cfunc_jack_midi_get_event_count in _x004.o
     (maybe you meant: __cgo_c2d4f1e0b1b0_Cfunc_jack_midi_get_event_count)
  "_jack_on_shutdown", referenced from:
      _jack_on_shutdown_go in _x004.o
      __cgo_c2d4f1e0b1b0_Cfunc_jack_on_shutdown_go in _x004.o
     (maybe you meant: __cgo_c2d4f1e0b1b0_Cfunc_jack_on_shutdown_go, _jack_on_shutdown_go )
  "_jack_port_by_id", referenced from:
      __cgo_c2d4f1e0b1b0_Cfunc_jack_port_by_id in _x004.o
     (maybe you meant: __cgo_c2d4f1e0b1b0_Cfunc_jack_port_by_id)
  "_jack_port_by_name", referenced from:
      __cgo_c2d4f1e0b1b0_Cfunc_jack_port_by_name in _x004.o
     (maybe you meant: __cgo_c2d4f1e0b1b0_Cfunc_jack_port_by_name)
  "_jack_port_get_buffer", referenced from:
      __cgo_c2d4f1e0b1b0_Cfunc_jack_port_get_buffer in _x004.o
     (maybe you meant: __cgo_c2d4f1e0b1b0_Cfunc_jack_port_get_buffer)
  "_jack_port_get_connections", referenced from:
      __cgo_c2d4f1e0b1b0_Cfunc_jack_port_get_connections in _x004.o
     (maybe you meant: __cgo_c2d4f1e0b1b0_Cfunc_jack_port_get_connections)
  "_jack_port_is_mine", referenced from:
      __cgo_c2d4f1e0b1b0_Cfunc_jack_port_is_mine in _x004.o
     (maybe you meant: __cgo_c2d4f1e0b1b0_Cfunc_jack_port_is_mine)
  "_jack_port_name", referenced from:
      __cgo_c2d4f1e0b1b0_Cfunc_jack_port_name in _x004.o
     (maybe you meant: __cgo_c2d4f1e0b1b0_Cfunc_jack_port_name)
  "_jack_port_register", referenced from:
      __cgo_c2d4f1e0b1b0_Cfunc_jack_port_register in _x004.o
     (maybe you meant: __cgo_c2d4f1e0b1b0_Cfunc_jack_port_register)
  "_jack_port_short_name", referenced from:
      __cgo_c2d4f1e0b1b0_Cfunc_jack_port_short_name in _x004.o
     (maybe you meant: __cgo_c2d4f1e0b1b0_Cfunc_jack_port_short_name)
  "_jack_port_type", referenced from:
      __cgo_c2d4f1e0b1b0_Cfunc_jack_port_type in _x004.o
     (maybe you meant: __cgo_c2d4f1e0b1b0_Cfunc_jack_port_type)
  "_jack_port_unregister", referenced from:
      __cgo_c2d4f1e0b1b0_Cfunc_jack_port_unregister in _x004.o
     (maybe you meant: __cgo_c2d4f1e0b1b0_Cfunc_jack_port_unregister)
  "_jack_set_buffer_size_callback", referenced from:
      _jack_set_buffer_size_callback_go in _x004.o
      __cgo_c2d4f1e0b1b0_Cfunc_jack_set_buffer_size_callback_go in _x004.o
     (maybe you meant: __cgo_c2d4f1e0b1b0_Cfunc_jack_set_buffer_size_callback_go, _jack_set_buffer_size_callback_go )
  "_jack_set_error_function", referenced from:
      _jack_set_error_function_go in _x004.o
      __cgo_c2d4f1e0b1b0_Cfunc_jack_set_error_function_go in _x004.o
     (maybe you meant: __cgo_c2d4f1e0b1b0_Cfunc_jack_set_error_function_go, _jack_set_error_function_go )
  "_jack_set_info_function", referenced from:
      _jack_set_info_function_go in _x004.o
      __cgo_c2d4f1e0b1b0_Cfunc_jack_set_info_function_go in _x004.o
     (maybe you meant: __cgo_c2d4f1e0b1b0_Cfunc_jack_set_info_function_go, _jack_set_info_function_go )
  "_jack_set_port_connect_callback", referenced from:
      _jack_set_port_connect_callback_go in _x004.o
      __cgo_c2d4f1e0b1b0_Cfunc_jack_set_port_connect_callback_go in _x004.o
     (maybe you meant: __cgo_c2d4f1e0b1b0_Cfunc_jack_set_port_connect_callback_go, _jack_set_port_connect_callback_go )
  "_jack_set_port_registration_callback", referenced from:
      _jack_set_port_registration_callback_go in _x004.o
      __cgo_c2d4f1e0b1b0_Cfunc_jack_set_port_registration_callback_go in _x004.o
     (maybe you meant: __cgo_c2d4f1e0b1b0_Cfunc_jack_set_port_registration_callback_go, _jack_set_port_registration_callback_go )
  "_jack_set_port_rename_callback", referenced from:
      _jack_set_port_rename_callback_go in _x004.o
      __cgo_c2d4f1e0b1b0_Cfunc_jack_set_port_rename_callback_go in _x004.o
     (maybe you meant: __cgo_c2d4f1e0b1b0_Cfunc_jack_set_port_rename_callback_go, _jack_set_port_rename_callback_go )
  "_jack_set_process_callback", referenced from:
      _jack_set_process_callback_go in _x004.o
      __cgo_c2d4f1e0b1b0_Cfunc_jack_set_process_callback_go in _x004.o
     (maybe you meant: __cgo_c2d4f1e0b1b0_Cfunc_jack_set_process_callback_go, _jack_set_process_callback_go )
  "_jack_set_sample_rate_callback", referenced from:
      _jack_set_sample_rate_callback_go in _x004.o
      __cgo_c2d4f1e0b1b0_Cfunc_jack_set_sample_rate_callback_go in _x004.o
     (maybe you meant: __cgo_c2d4f1e0b1b0_Cfunc_jack_set_sample_rate_callback_go, _jack_set_sample_rate_callback_go )
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
# github.com/xthexder/go-jack
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:11:9: warning: 'EAGAIN' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:129:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:12:9: warning: 'EWOULDBLOCK' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:130:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:36:9: warning: 'EDEADLK' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:98:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:37:9: warning: 'ENAMETOOLONG' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:181:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:38:9: warning: 'ENOLCK' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:208:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:39:9: warning: 'ENOSYS' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:209:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:40:9: warning: 'ENOTEMPTY' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:188:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:41:9: warning: 'ELOOP' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:180:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:42:9: warning: 'ENOMSG' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:234:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:43:9: warning: 'EIDRM' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:233:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:60:9: warning: 'ENOSTR' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:245:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:61:9: warning: 'ENODATA' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:242:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:62:9: warning: 'ETIME' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:247:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:63:9: warning: 'ENOSR' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:244:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:66:9: warning: 'EREMOTE' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:200:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:67:9: warning: 'ENOLINK' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:243:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:71:9: warning: 'EPROTO' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:246:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:72:9: warning: 'EMULTIHOP' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:241:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:74:9: warning: 'EBADMSG' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:240:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:75:9: warning: 'EOVERFLOW' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:221:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:84:9: warning: 'EILSEQ' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:235:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:87:9: warning: 'EUSERS' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:193:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:88:9: warning: 'ENOTSOCK' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:135:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:89:9: warning: 'EDESTADDRREQ' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:136:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:90:9: warning: 'EMSGSIZE' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:137:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:91:9: warning: 'EPROTOTYPE' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:138:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:92:9: warning: 'ENOPROTOOPT' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:139:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:93:9: warning: 'EPROTONOSUPPORT' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:140:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:94:9: warning: 'ESOCKTNOSUPPORT' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:142:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:95:9: warning: 'EOPNOTSUPP' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:251:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:96:9: warning: 'EPFNOSUPPORT' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:158:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:97:9: warning: 'EAFNOSUPPORT' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:160:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:98:9: warning: 'EADDRINUSE' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:161:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:99:9: warning: 'EADDRNOTAVAIL' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:162:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:100:9: warning: 'ENETDOWN' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:165:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:101:9: warning: 'ENETUNREACH' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:166:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:102:9: warning: 'ENETRESET' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:167:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:103:9: warning: 'ECONNABORTED' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:168:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:104:9: warning: 'ECONNRESET' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:169:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:105:9: warning: 'ENOBUFS' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:170:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:106:9: warning: 'EISCONN' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:171:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:107:9: warning: 'ENOTCONN' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:172:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:108:9: warning: 'ESHUTDOWN' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:174:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:109:9: warning: 'ETOOMANYREFS' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:175:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:110:9: warning: 'ETIMEDOUT' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:177:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:111:9: warning: 'ECONNREFUSED' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:178:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:112:9: warning: 'EHOSTDOWN' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:185:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:113:9: warning: 'EHOSTUNREACH' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:187:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:114:9: warning: 'EALREADY' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:132:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:115:9: warning: 'EINPROGRESS' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:131:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:116:9: warning: 'ESTALE' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:198:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:122:9: warning: 'EDQUOT' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:195:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:125:9: warning: 'ECANCELED' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:231:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:130:9: warning: 'EOWNERDEAD' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:258:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:131:9: warning: 'ENOTRECOVERABLE' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:257:9: note: previous definition is here
In file included from cgo-gcc-prolog:21:
src/github.com/xthexder/go-jack/errno.h:134:9: warning: 'ENOTSUP' macro redefined [-Wmacro-redefined]
/usr/include/sys/errno.h:144:9: note: previous definition is here

Couple of questions here:

  1. What version of Jack did you write this wrapper for?
  2. What system did you write this on?
andrepxx commented 6 years ago

I'm not the original author, but I contributed to this.

  1. The wrapper should work for all "more or less recent" versions of JACK. In particular, it should work for both JACK 1 and JACK 2 ("jackdmp"). (At least, this is my experience.)

  2. The wrapper was originally for 64-bit Linux only.

On 11th of June, I contributed a patch, which made it work on 32-bit systems (up to this point still Linux-only) as well, which was merged immediately.

On 12th of June, I contributed a patch, which made it work on Windows (both 32-bit and 64-bit) systems as well, which was merged on 16th of June. (It requires a specific build environment involving MSYS and MinGW to build on Windows though.)

So if you use the latest version, you should have support for both Linux and Windows running on either 32-bit and 64-bit processors. This includes architectures like i386 / x86, amd64 / x86-64, arm, aarch64, etc. (For example, I verified that this builds successfully on an ARM machine, even though - in my experience - JACK itself is not really usable on ARM.)

The platform-specific code is in jack.go:

#cgo linux LDFLAGS: -ljack
#cgo windows,386 LDFLAGS: -llibjack
#cgo windows,amd64 LDFLAGS: -llibjack64

... and in errors.go:

// #ifdef _WIN32
// #include "errno.h"
// #else
// #include <sys/errno.h>
// #endif

In order to support macOS, you will probably have to modify these sections/files (and probably add a #cgo darwin ... section underneath the #cgo linux ... section).

I cannot add support for macOS, as I have no device with this operating system to develop and test.

Also, please try go build ... in addition to go run .... Go programs sometimes behave differently when "run" instead of "built", particularly when making use of CGo.