Skip to content

Fftw misses symbols for arm64 arch #10

@Kimrli

Description

@Kimrli

Make fails on macOS with Apple Silicon Chip with errors of undefined symbols for arms64 architecture and it seems that the issue is with the fftw library.

ld: warning: -bind_at_load is deprecated on macOS
Undefined symbols for architecture arm64:
  "_fftw_destroy_plan", referenced from:
      colorscreen::gaussian_blur_mtf_fast(double, double (*) [2]) in libcolorscreen.a[6](libcolorscreen_la-screen.o)
      colorscreen::initialize_with_1D_fft_fast(colorscreen::screen&, colorscreen::screen const&, double const (*) [2], int, int) in libcolorscreen.a[6](libcolorscreen_la-screen.o)
      colorscreen::initialize_with_1D_fft_fast(colorscreen::screen&, colorscreen::screen const&, double const (*) [2], int, int) in libcolorscreen.a[6](libcolorscreen_la-screen.o)
      colorscreen::point_spread_fft(double (&) [8320][2], colorscreen::precomputed_function<double>&, double) in libcolorscreen.a[6](libcolorscreen_la-screen.o)
      colorscreen::initialize_with_2D_fft_fast(colorscreen::screen&, colorscreen::screen const&, double const (*) [2], int, int) in libcolorscreen.a[6](libcolorscreen_la-screen.o)
      colorscreen::initialize_with_2D_fft_fast(colorscreen::screen&, colorscreen::screen const&, double const (*) [2], int, int) in libcolorscreen.a[6](libcolorscreen_la-screen.o)
  "_fftw_execute", referenced from:
      colorscreen::gaussian_blur_mtf_fast(double, double (*) [2]) in libcolorscreen.a[6](libcolorscreen_la-screen.o)
      colorscreen::initialize_with_1D_fft_fast(colorscreen::screen&, colorscreen::screen const&, double const (*) [2], int, int) in libcolorscreen.a[6](libcolorscreen_la-screen.o)
      colorscreen::initialize_with_1D_fft_fast(colorscreen::screen&, colorscreen::screen const&, double const (*) [2], int, int) in libcolorscreen.a[6](libcolorscreen_la-screen.o)
      colorscreen::point_spread_fft(double (&) [8320][2], colorscreen::precomputed_function<double>&, double) in libcolorscreen.a[6](libcolorscreen_la-screen.o)
      colorscreen::initialize_with_2D_fft_fast(colorscreen::screen&, colorscreen::screen const&, double const (*) [2], int, int) in libcolorscreen.a[6](libcolorscreen_la-screen.o)
      colorscreen::initialize_with_2D_fft_fast(colorscreen::screen&, colorscreen::screen const&, double const (*) [2], int, int) in libcolorscreen.a[6](libcolorscreen_la-screen.o)
  "_fftw_plan_dft_c2r_2d", referenced from:
      colorscreen::initialize_with_1D_fft_fast(colorscreen::screen&, colorscreen::screen const&, double const (*) [2], int, int) in libcolorscreen.a[6](libcolorscreen_la-screen.o)
      colorscreen::initialize_with_2D_fft_fast(colorscreen::screen&, colorscreen::screen const&, double const (*) [2], int, int) in libcolorscreen.a[6](libcolorscreen_la-screen.o)
  "_fftw_plan_dft_r2c_1d", referenced from:
      colorscreen::gaussian_blur_mtf_fast(double, double (*) [2]) in libcolorscreen.a[6](libcolorscreen_la-screen.o)
  "_fftw_plan_dft_r2c_2d", referenced from:
      colorscreen::initialize_with_1D_fft_fast(colorscreen::screen&, colorscreen::screen const&, double const (*) [2], int, int) in libcolorscreen.a[6](libcolorscreen_la-screen.o)
      colorscreen::point_spread_fft(double (&) [8320][2], colorscreen::precomputed_function<double>&, double) in libcolorscreen.a[6](libcolorscreen_la-screen.o)
      colorscreen::initialize_with_2D_fft_fast(colorscreen::screen&, colorscreen::screen const&, double const (*) [2], int, int) in libcolorscreen.a[6](libcolorscreen_la-screen.o)
ld: symbol(s) not found for architecture arm64
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
make[3]: *** [unittests] Error 1
make[2]: *** [all] Error 2
make[1]: *** [all-recursive] Error 1
make: *** [all-recursive] Error 1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions