Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can't run in Apple M1 Chip arm64 #360

Closed
hskrishandi opened this issue May 29, 2023 · 2 comments
Closed

Can't run in Apple M1 Chip arm64 #360

hskrishandi opened this issue May 29, 2023 · 2 comments

Comments

@hskrishandi
Copy link

Hi,

I followed through everything in the README.md but when I run the main function, I got the following crash:

# command-line-arguments
/usr/local/go/pkg/tool/darwin_amd64/link: running clang failed: exit status 1
ld: warning: -no_pie is deprecated when targeting new OS versions
ld: warning: ignoring file /opt/homebrew/Cellar/glib/2.76.3/lib/libglib-2.0.dylib, building for macOS-x86_64 but attempting to link with file built for macOS-arm64
ld: warning: ignoring file /opt/homebrew/Cellar/glib/2.76.3/lib/libgobject-2.0.dylib, building for macOS-x86_64 but attempting to link with file built for macOS-arm64
ld: warning: ignoring file /opt/homebrew/Cellar/glib/2.76.3/lib/libgio-2.0.dylib, building for macOS-x86_64 but attempting to link with file built for macOS-arm64
ld: warning: ignoring file /opt/homebrew/Cellar/vips/8.14.2_1/lib/libvips.dylib, building for macOS-x86_64 but attempting to link with file built for macOS-arm64
ld: warning: ignoring file /opt/homebrew/opt/gettext/lib/libintl.dylib, building for macOS-x86_64 but attempting to link with file built for macOS-arm64
Undefined symbols for architecture x86_64:
  "_g_free", referenced from:
      __cgo_b729b1fb7899_Cfunc_g_free in 000014.o
     (maybe you meant: __cgo_b729b1fb7899_Cfunc_g_free)
  "_g_log", referenced from:
      _load_from_buffer in 000024.o
      _save_to_buffer in 000024.o
  "_g_log_default_handler", referenced from:
      _vips_default_logging_handler in 000025.o
  "_g_log_set_default_handler", referenced from:
      _vips_set_logging_handler in 000025.o
      _vips_unset_logging_handler in 000025.o
      _vips_default_logging_handler in 000025.o
  "_g_object_get", referenced from:
      _load_buffer in 000024.o
      _save_buffer in 000024.o
  "_g_object_unref", referenced from:
      __cgo_b729b1fb7899_Cfunc_g_object_unref in 000004.o
      _embed_multi_page_image in 000020.o
      _embed_multi_page_image_background in 000020.o
      _extract_area_multi_page in 000020.o
      _load_buffer in 000024.o
      _save_buffer in 000024.o
      _clear_image in 000027.o
      ...
     (maybe you meant: __cgo_b729b1fb7899_Cfunc_g_object_unref)
  "_g_strfreev", referenced from:
      __cgo_b729b1fb7899_Cfunc_g_strfreev in 000011.o
     (maybe you meant: __cgo_b729b1fb7899_Cfunc_g_strfreev)
  "_g_type_check_instance_is_fundamentally_a", referenced from:
      _clear_image in 000027.o
  "_vips_add", referenced from:
      _add in 000018.o
  "_vips_addalpha", referenced from:
      _add_alpha in 000020.o
  "_vips_affine", referenced from:
      _affine_image in 000030.o
  "_vips_area_unref", referenced from:
      _find_trim in 000018.o
      _embed_image_background in 000020.o
      _embed_multi_page_image_background in 000020.o
      _similarity in 000020.o
      _flatten_image in 000020.o
      _composite_image in 000020.o
      _insert_image in 000020.o
      ...
  "_vips_array_double_new", referenced from:
      _find_trim in 000018.o
      _embed_image_background in 000020.o
      _embed_multi_page_image_background in 000020.o
      _similarity in 000020.o
      _flatten_image in 000020.o
      _insert_image in 000020.o
  "_vips_array_int_new", referenced from:
      _composite_image in 000020.o
  "_vips_arrayjoin", referenced from:
      _embed_multi_page_image in 000020.o
      _embed_multi_page_image_background in 000020.o
      _extract_area_multi_page in 000020.o
      _arrayjoin in 000020.o
  "_vips_autorot", referenced from:
      _autorot_image in 000020.o
  "_vips_avg", referenced from:
      _average in 000018.o
  "_vips_bandjoin", referenced from:
      _bandjoin in 000020.o
  "_vips_bandjoin_const", referenced from:
      _bandjoin_const in 000020.o
  "_vips_black", referenced from:
      _black in 000022.o
      _label in 000028.o
  "_vips_blob_new", referenced from:
      _load_buffer in 000024.o
  "_vips_cache_drop_all", referenced from:
      __cgo_b729b1fb7899_Cfunc_vips_cache_drop_all in 000010.o
     (maybe you meant: __cgo_b729b1fb7899_Cfunc_vips_cache_drop_all)
  "_vips_cache_get_max", referenced from:
      __cgo_b729b1fb7899_Cfunc_vips_cache_get_max in 000010.o
     (maybe you meant: __cgo_b729b1fb7899_Cfunc_vips_cache_get_max_mem, __cgo_b729b1fb7899_Cfunc_vips_cache_get_max , __cgo_b729b1fb7899_Cfunc_vips_cache_get_max_files )
  "_vips_cache_get_max_files", referenced from:
      __cgo_b729b1fb7899_Cfunc_vips_cache_get_max_files in 000010.o
     (maybe you meant: __cgo_b729b1fb7899_Cfunc_vips_cache_get_max_files)
  "_vips_cache_get_max_mem", referenced from:
      __cgo_b729b1fb7899_Cfunc_vips_cache_get_max_mem in 000010.o
     (maybe you meant: __cgo_b729b1fb7899_Cfunc_vips_cache_get_max_mem)
  "_vips_cache_operation_buildp", referenced from:
      _load_buffer in 000024.o
      _save_buffer in 000024.o
  "_vips_cache_print", referenced from:
      __cgo_b729b1fb7899_Cfunc_vips_cache_print in 000010.o
     (maybe you meant: __cgo_b729b1fb7899_Cfunc_vips_cache_print)
  "_vips_cache_set_max", referenced from:
      __cgo_b729b1fb7899_Cfunc_vips_cache_set_max in 000010.o
     (maybe you meant: __cgo_b729b1fb7899_Cfunc_vips_cache_set_max, __cgo_b729b1fb7899_Cfunc_vips_cache_set_max_files , __cgo_b729b1fb7899_Cfunc_vips_cache_set_max_mem )
  "_vips_cache_set_max_files", referenced from:
      __cgo_b729b1fb7899_Cfunc_vips_cache_set_max_files in 000010.o
     (maybe you meant: __cgo_b729b1fb7899_Cfunc_vips_cache_set_max_files)
  "_vips_cache_set_max_mem", referenced from:
      __cgo_b729b1fb7899_Cfunc_vips_cache_set_max_mem in 000010.o
     (maybe you meant: __cgo_b729b1fb7899_Cfunc_vips_cache_set_max_mem)
  "_vips_cache_set_trace", referenced from:
      __cgo_b729b1fb7899_Cfunc_vips_cache_set_trace in 000010.o
     (maybe you meant: __cgo_b729b1fb7899_Cfunc_vips_cache_set_trace)
  "_vips_cast", referenced from:
      _cast in 000020.o
      _label in 000028.o
  "_vips_colourspace", referenced from:
      _to_colorspace in 000019.o
  "_vips_colourspace_issupported", referenced from:
      _is_colorspace_supported in 000019.o
  "_vips_composite", referenced from:
      _composite_image in 000020.o
  "_vips_composite2", referenced from:
      _composite2_image in 000020.o
  "_vips_concurrency_get", referenced from:
      __cgo_b729b1fb7899_Cfunc_vips_concurrency_get in 000010.o
     (maybe you meant: __cgo_b729b1fb7899_Cfunc_vips_concurrency_get)
  "_vips_concurrency_set", referenced from:
      __cgo_b729b1fb7899_Cfunc_vips_concurrency_set in 000010.o
     (maybe you meant: __cgo_b729b1fb7899_Cfunc_vips_concurrency_set)
  "_vips_copy", referenced from:
      _copy_image_changing_interpretation in 000020.o
      _copy_image_changing_resolution in 000020.o
      _copy_image in 000020.o
      _embed_multi_page_image in 000020.o
      _embed_multi_page_image_background in 000020.o
      _extract_area_multi_page in 000020.o
      _label in 000028.o
      ...
  "_vips_divide", referenced from:
      _divide in 000018.o
  "_vips_draw_rect", referenced from:
      _draw_rect in 000023.o
  "_vips_embed", referenced from:
      _embed_image in 000020.o
      _embed_image_background in 000020.o
      _embed_multi_page_image in 000020.o
      _embed_multi_page_image_background in 000020.o
      _label in 000028.o
  "_vips_error_buffer", referenced from:
      __cgo_b729b1fb7899_Cfunc_vips_error_buffer in 000008.o
     (maybe you meant: __cgo_b729b1fb7899_Cfunc_vips_error_buffer)
  "_vips_error_clear", referenced from:
      __cgo_b729b1fb7899_Cfunc_vips_error_clear in 000008.o
     (maybe you meant: __cgo_b729b1fb7899_Cfunc_vips_error_clear)
  "_vips_extract_area", referenced from:
      _embed_multi_page_image in 000020.o
      _embed_multi_page_image_background in 000020.o
      _extract_image_area in 000020.o
      _extract_area_multi_page in 000020.o
  "_vips_extract_band", referenced from:
      _extract_band in 000020.o
  "_vips_find_trim", referenced from:
      _find_trim in 000018.o
  "_vips_flatten", referenced from:
      _flatten_image in 000020.o
  "_vips_flip", referenced from:
      _flip_image in 000020.o
  "_vips_gaussblur", referenced from:
      _gaussian_blur_image in 000021.o
  "_vips_getpoint", referenced from:
      _getpoint in 000018.o
  "_vips_gifload_buffer", referenced from:
      _load_image_buffer in 000024.o
  "_vips_grid", referenced from:
      _grid in 000020.o
  "_vips_heifload_buffer", referenced from:
      _load_image_buffer in 000024.o
  "_vips_icc_transform", referenced from:
      _icc_transform in 000019.o
  "_vips_identity", referenced from:
      _identity in 000022.o
  "_vips_ifthenelse", referenced from:
      _label in 000028.o
  "_vips_image_get_array_int", referenced from:
      _get_image_delay in 000026.o
  "_vips_image_get_as_string", referenced from:
      _image_get_as_string in 000026.o
  "_vips_image_get_blob", referenced from:
      _get_icc_profile in 000026.o
      _image_get_blob in 000026.o
  "_vips_image_get_double", referenced from:
      _image_get_double in 000026.o
  "_vips_image_get_fields", referenced from:
      _image_get_fields in 000026.o
  "_vips_image_get_int", referenced from:
      _get_meta_orientation in 000026.o
      _image_get_int in 000026.o
  "_vips_image_get_n_pages", referenced from:
      _get_image_n_pages in 000026.o
  "_vips_image_get_page_height", referenced from:
      _embed_multi_page_image in 000020.o
      _embed_multi_page_image_background in 000020.o
      _extract_area_multi_page in 000020.o
      _get_page_height in 000026.o
  "_vips_image_get_string", referenced from:
      _image_get_string in 000026.o
      _get_meta_loader in 000026.o
  "_vips_image_get_typeof", referenced from:
      _has_icc_profile in 000026.o
      _get_icc_profile in 000026.o
      _image_get_blob in 000026.o
      _has_iptc in 000026.o
      _get_meta_orientation in 000026.o
  "_vips_image_hasalpha", referenced from:
      _has_alpha_channel in 000027.o
  "_vips_image_new", referenced from:
      _embed_multi_page_image in 000020.o
      _embed_multi_page_image_background in 000020.o
      _extract_area_multi_page in 000020.o
      _label in 000028.o
  "_vips_image_remove", referenced from:
      _remove_icc_profile in 000026.o
      _remove_field in 000026.o
      _remove_meta_orientation in 000026.o
  "_vips_image_set_array_int", referenced from:
      _set_image_delay in 000026.o
  "_vips_image_set_blob_copy", referenced from:
      _image_set_blob in 000026.o
  "_vips_image_set_double", referenced from:
      _image_set_double in 000026.o
  "_vips_image_set_int", referenced from:
      _embed_multi_page_image in 000020.o
      _embed_multi_page_image_background in 000020.o
      _extract_area_multi_page in 000020.o
      _set_meta_orientation in 000026.o
      _set_image_n_pages in 000026.o
      _set_page_height in 000026.o
      _image_set_int in 000026.o
      ...
  "_vips_image_set_string", referenced from:
      _image_set_string in 000026.o
  "_vips_image_write_to_memory", referenced from:
      __cgo_b729b1fb7899_Cfunc_vips_image_write_to_memory in 000012.o
     (maybe you meant: __cgo_b729b1fb7899_Cfunc_vips_image_write_to_memory)
  "_vips_init", referenced from:
      __cgo_b729b1fb7899_Cfunc_vips_init in 000010.o
     (maybe you meant: __cgo_b729b1fb7899_Cfunc_vips_init)
  "_vips_insert", referenced from:
      _insert_image in 000020.o
  "_vips_invert", referenced from:
      _invert_image in 000018.o
  "_vips_join", referenced from:
      _join in 000020.o
  "_vips_jp2kload_buffer", referenced from:
      _load_image_buffer in 000024.o
  "_vips_jpegload_buffer", referenced from:
      _load_image_buffer in 000024.o
  "_vips_leak_set", referenced from:
      __cgo_b729b1fb7899_Cfunc_vips_leak_set in 000010.o
     (maybe you meant: __cgo_b729b1fb7899_Cfunc_vips_leak_set)
  "_vips_linear", referenced from:
      _linear in 000018.o
      _label in 000028.o
  "_vips_linear1", referenced from:
      _linear1 in 000018.o
      _label in 000028.o
  "_vips_magickload_buffer", referenced from:
      _load_image_buffer in 000024.o
  "_vips_mapim", referenced from:
      _mapim in 000030.o
  "_vips_maplut", referenced from:
      _maplut in 000030.o
  "_vips_multiply", referenced from:
      _multiply in 000018.o
  "_vips_object_local_array", referenced from:
      _embed_multi_page_image in 000020.o
      _embed_multi_page_image_background in 000020.o
      _extract_area_multi_page in 000020.o
      _label in 000028.o
  "_vips_object_print_all", referenced from:
      __cgo_b729b1fb7899_Cfunc_vips_object_print_all in 000010.o
     (maybe you meant: __cgo_b729b1fb7899_Cfunc_vips_object_print_all)
  "_vips_object_set", referenced from:
      _set_jpegload_options in 000024.o
      _set_pngload_options in 000024.o
      _set_webpload_options in 000024.o
      _set_tiffload_options in 000024.o
      _set_gifload_options in 000024.o
      _set_pdfload_options in 000024.o
      _set_svgload_options in 000024.o
      ...
  "_vips_object_unref_outputs", referenced from:
      _load_buffer in 000024.o
      _save_buffer in 000024.o
  "_vips_operation_new", referenced from:
      _load_buffer in 000024.o
      _save_buffer in 000024.o
  "_vips_pdfload_buffer", referenced from:
      _load_image_buffer in 000024.o
  "_vips_pngload_buffer", referenced from:
      _load_image_buffer in 000024.o
  "_vips_premultiply", referenced from:
      _premultiply_alpha in 000020.o
  "_vips_rank", referenced from:
      _rank in 000029.o
  "_vips_reduce", referenced from:
      _reduce_image in 000030.o
  "_vips_replicate", referenced from:
      _replicate in 000020.o
  "_vips_resize", referenced from:
      _resize_image in 000030.o
  "_vips_rot", referenced from:
      _rot_image in 000020.o
  "_vips_sharpen", referenced from:
      _sharpen_image in 000021.o
  "_vips_shrink", referenced from:
      _shrink_image in 000030.o
  "_vips_shutdown", referenced from:
      __cgo_b729b1fb7899_Cfunc_vips_shutdown in 000010.o
     (maybe you meant: __cgo_b729b1fb7899_Cfunc_vips_shutdown)
  "_vips_similarity", referenced from:
      _similarity in 000020.o
  "_vips_smartcrop", referenced from:
      _smartcrop in 000020.o
  "_vips_svgload_buffer", referenced from:
      _load_image_buffer in 000024.o
  "_vips_text", referenced from:
      _text in 000028.o
      _label in 000028.o
  "_vips_thread_shutdown", referenced from:
      __cgo_b729b1fb7899_Cfunc_vips_thread_shutdown in 000010.o
     (maybe you meant: __cgo_b729b1fb7899_Cfunc_vips_thread_shutdown)
  "_vips_thumbnail", referenced from:
      _thumbnail in 000030.o
  "_vips_thumbnail_buffer", referenced from:
      _thumbnail_buffer_with_option in 000030.o
      _thumbnail_buffer in 000030.o
  "_vips_thumbnail_image", referenced from:
      _thumbnail_image in 000030.o
  "_vips_tiffload_buffer", referenced from:
      _load_image_buffer in 000024.o
  "_vips_tracked_get_allocs", referenced from:
      __cgo_b729b1fb7899_Cfunc_vips_tracked_get_allocs in 000010.o
     (maybe you meant: __cgo_b729b1fb7899_Cfunc_vips_tracked_get_allocs)
  "_vips_tracked_get_files", referenced from:
      __cgo_b729b1fb7899_Cfunc_vips_tracked_get_files in 000010.o
     (maybe you meant: __cgo_b729b1fb7899_Cfunc_vips_tracked_get_files)
  "_vips_tracked_get_mem", referenced from:
      __cgo_b729b1fb7899_Cfunc_vips_tracked_get_mem in 000010.o
     (maybe you meant: __cgo_b729b1fb7899_Cfunc_vips_tracked_get_mem, __cgo_b729b1fb7899_Cfunc_vips_tracked_get_mem_highwater )
  "_vips_tracked_get_mem_highwater", referenced from:
      __cgo_b729b1fb7899_Cfunc_vips_tracked_get_mem_highwater in 000010.o
     (maybe you meant: __cgo_b729b1fb7899_Cfunc_vips_tracked_get_mem_highwater)
  "_vips_type_find", referenced from:
      __cgo_b729b1fb7899_Cfunc_vips_type_find in 000010.o
     (maybe you meant: __cgo_b729b1fb7899_Cfunc_vips_type_find)
  "_vips_unpremultiply", referenced from:
      _unpremultiply_alpha in 000020.o
  "_vips_version", referenced from:
      __cgo_b729b1fb7899_Cfunc_vips_version in 000010.o
     (maybe you meant: __cgo_b729b1fb7899_Cfunc_vips_version_string, __cgo_b729b1fb7899_Cfunc_vips_version )
  "_vips_version_string", referenced from:
      __cgo_b729b1fb7899_Cfunc_vips_version_string in 000010.o
     (maybe you meant: __cgo_b729b1fb7899_Cfunc_vips_version_string)
  "_vips_webpload_buffer", referenced from:
      _load_image_buffer in 000024.o
  "_vips_xyz", referenced from:
      _xyz in 000022.o
  "_vips_zoom", referenced from:
      _zoom_image in 000020.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Is this library not compatible yet with Apple M1 arm64? Running vips directly in command line works fine though.

Here's some specs that I'm running on

  • macOS Ventura 13.0
  • vips-8.14.2
  • go 1.17
  • github.com/davidbyttow/govips/v2 v2.13.0

Any help would be greatly appreciated. Thanks🙏

@tonimelisma
Copy link
Collaborator

Hey,

it's definitely not M1. We have several people with M1 including myself who successfully use govips. It looks like a problem you have with your C compiler environment, not related to govips. Apologies but I can't help more.

@hskrishandi
Copy link
Author

Found the cause. Looks like I installed the incorrect version of go, which is the amd64

go version go1.19.4 darwin/amd64

After uninstalling and installing the correct arm64's go, it works fine 👍🏻

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants