На Mac M3 с использованием MacOS 26.1 и доморощенного базеля 8.4.2 я создаю libtiff, где у меня есть libjpeg_turbo в качестве зависимости. При сборке я получаю ошибку связывания с jsimd:
Как видите, я также пытался отключить поддержку jpeg, но безуспешно. Поэтому я решил продолжить путь, чтобы запустить его с функциями jpeg.
Код находится здесь: https://github.com/dreisicht/libtiff_bazel
Чтобы собрать его, просто вызовите bazel build :libtiff
Любая подсказка будет очень приветствоваться!
На Mac M3 с использованием MacOS 26.1 и доморощенного базеля 8.4.2 я создаю libtiff, где у меня есть libjpeg_turbo в качестве зависимости. При сборке я получаю ошибку связывания с jsimd: [code][ 73%] Linking CXX executable tiffcrop Undefined symbols for architecture arm64: "_jsimd_can_convsamp", referenced from: _jinit_forward_dct in libjpeg.a[41](jcdctmgr-8.o) "_jsimd_can_convsamp_float", referenced from: _jinit_forward_dct in libjpeg.a[41](jcdctmgr-8.o) "_jsimd_can_encode_mcu_AC_first_prepare", referenced from: _start_pass_phuff in libjpeg.a[13](jcphuff.o) "_jsimd_can_encode_mcu_AC_refine_prepare", referenced from: _start_pass_phuff in libjpeg.a[13](jcphuff.o) "_jsimd_can_fdct_float", referenced from: _jinit_forward_dct in libjpeg.a[41](jcdctmgr-8.o) "_jsimd_can_fdct_ifast", referenced from: _jinit_forward_dct in libjpeg.a[41](jcdctmgr-8.o) "_jsimd_can_fdct_islow", referenced from: _jinit_forward_dct in libjpeg.a[41](jcdctmgr-8.o) "_jsimd_can_h1v2_fancy_upsample", referenced from: _jinit_upsampler in libjpeg.a[83](jdsample-8.o) "_jsimd_can_h2v1_downsample", referenced from: _jinit_downsampler in libjpeg.a[56](jcsample-8.o) "_jsimd_can_h2v1_fancy_upsample", referenced from: _jinit_upsampler in libjpeg.a[83](jdsample-8.o) "_jsimd_can_h2v1_merged_upsample", referenced from: _jinit_merged_upsampler in libjpeg.a[77](jdmerge-8.o) "_jsimd_can_h2v1_upsample", referenced from: _jinit_upsampler in libjpeg.a[83](jdsample-8.o) "_jsimd_can_h2v2_downsample", referenced from: _jinit_downsampler in libjpeg.a[56](jcsample-8.o) "_jsimd_can_h2v2_fancy_upsample", referenced from: _jinit_upsampler in libjpeg.a[83](jdsample-8.o) "_jsimd_can_h2v2_merged_upsample", referenced from: _jinit_merged_upsampler in libjpeg.a[77](jdmerge-8.o) "_jsimd_can_h2v2_upsample", referenced from: _jinit_upsampler in libjpeg.a[83](jdsample-8.o) "_jsimd_can_huff_encode_one_block", referenced from: _start_pass_huff in libjpeg.a[5](jchuff.o) "_jsimd_can_idct_2x2", referenced from: _start_pass in libjpeg.a[66](jddctmgr-8.o) "_jsimd_can_idct_4x4", referenced from: _start_pass in libjpeg.a[66](jddctmgr-8.o) "_jsimd_can_idct_float", referenced from: _start_pass in libjpeg.a[66](jddctmgr-8.o) "_jsimd_can_idct_ifast", referenced from: _start_pass in libjpeg.a[66](jddctmgr-8.o) "_jsimd_can_idct_islow", referenced from: _start_pass in libjpeg.a[66](jddctmgr-8.o) "_jsimd_can_quantize", referenced from: _jinit_forward_dct in libjpeg.a[41](jcdctmgr-8.o) "_jsimd_can_quantize_float", referenced from: _jinit_forward_dct in libjpeg.a[41](jcdctmgr-8.o) "_jsimd_can_rgb_gray", referenced from: _jinit_color_converter in libjpeg.a[39](jccolor-8.o) "_jsimd_can_rgb_ycc", referenced from: _jinit_color_converter in libjpeg.a[39](jccolor-8.o) "_jsimd_can_ycc_rgb", referenced from: _jinit_color_deconverter in libjpeg.a[64](jdcolor-8.o) "_jsimd_can_ycc_rgb565", referenced from: _jinit_color_deconverter in libjpeg.a[64](jdcolor-8.o) "_jsimd_convsamp", referenced from: _jinit_forward_dct in libjpeg.a[41](jcdctmgr-8.o) "_jsimd_convsamp_float", referenced from: _jinit_forward_dct in libjpeg.a[41](jcdctmgr-8.o) "_jsimd_encode_mcu_AC_first_prepare", referenced from: _start_pass_phuff in libjpeg.a[13](jcphuff.o) "_jsimd_encode_mcu_AC_refine_prepare", referenced from: _start_pass_phuff in libjpeg.a[13](jcphuff.o) "_jsimd_fdct_float", referenced from: _jinit_forward_dct in libjpeg.a[41](jcdctmgr-8.o) "_jsimd_fdct_ifast", referenced from: _jinit_forward_dct in libjpeg.a[41](jcdctmgr-8.o) "_jsimd_fdct_islow", referenced from: _jinit_forward_dct in libjpeg.a[41](jcdctmgr-8.o) "_jsimd_h1v2_fancy_upsample", referenced from: _jinit_upsampler in libjpeg.a[83](jdsample-8.o) "_jsimd_h2v1_downsample", referenced from: _jinit_downsampler in libjpeg.a[56](jcsample-8.o) "_jsimd_h2v1_fancy_upsample", referenced from: _jinit_upsampler in libjpeg.a[83](jdsample-8.o) "_jsimd_h2v1_merged_upsample", referenced from: _jinit_merged_upsampler in libjpeg.a[77](jdmerge-8.o) "_jsimd_h2v1_upsample", referenced from: _jinit_upsampler in libjpeg.a[83](jdsample-8.o) "_jsimd_h2v2_downsample", referenced from: _jinit_downsampler in libjpeg.a[56](jcsample-8.o) "_jsimd_h2v2_fancy_upsample", referenced from: _jinit_upsampler in libjpeg.a[83](jdsample-8.o) "_jsimd_h2v2_merged_upsample", referenced from: _jinit_merged_upsampler in libjpeg.a[77](jdmerge-8.o) "_jsimd_h2v2_upsample", referenced from: _jinit_upsampler in libjpeg.a[83](jdsample-8.o) "_jsimd_huff_encode_one_block", referenced from: _encode_mcu_huff in libjpeg.a[5](jchuff.o) _encode_mcu_huff in libjpeg.a[5](jchuff.o) "_jsimd_idct_2x2", referenced from: _start_pass in libjpeg.a[66](jddctmgr-8.o) "_jsimd_idct_4x4", referenced from: _start_pass in libjpeg.a[66](jddctmgr-8.o) "_jsimd_idct_float", referenced from: _start_pass in libjpeg.a[66](jddctmgr-8.o) "_jsimd_idct_ifast", referenced from: _start_pass in libjpeg.a[66](jddctmgr-8.o) "_jsimd_idct_islow", referenced from: _start_pass in libjpeg.a[66](jddctmgr-8.o) "_jsimd_quantize", referenced from: _jinit_forward_dct in libjpeg.a[41](jcdctmgr-8.o) _start_pass_fdctmgr in libjpeg.a[41](jcdctmgr-8.o) "_jsimd_quantize_float", referenced from: _jinit_forward_dct in libjpeg.a[41](jcdctmgr-8.o) "_jsimd_rgb_gray_convert", referenced from: _jinit_color_converter in libjpeg.a[39](jccolor-8.o) "_jsimd_rgb_ycc_convert", referenced from: _jinit_color_converter in libjpeg.a[39](jccolor-8.o) "_jsimd_ycc_rgb565_convert", referenced from: _jinit_color_deconverter in libjpeg.a[64](jdcolor-8.o) "_jsimd_ycc_rgb_convert", referenced from: _jinit_color_deconverter in libjpeg.a[64](jdcolor-8.o) ld: symbol(s) not found for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation) Error in child process '/usr/bin/xcrun'. 1 make[2]: *** [tools/CMakeFiles/tiffcrop.dir/build.make:108: tools/tiffcrop] Error 1 make[1]: *** [CMakeFiles/Makefile2:958: tools/CMakeFiles/tiffcrop.dir/all] Error 2 make: *** [Makefile:146: all] Error 2 [/code] Вот цель, которую я строю: [code]cmake( name = "libtiff", cache_entries = { "BUILD_SHARED_LIBS": "OFF", "JPEG": "OFF", "LZMA2": "OFF", "LZW": "OFF", }, # Prefer passing CMake options explicitly so the project respects them. env = { "BUILD_SHARED_LIBS": "OFF", # disable optional codecs and tools/tests that pull in libjpeg/jsimd and lzma "JPEG": "OFF", "JPEG12": "OFF", "LZMA": "OFF", "BUILD_TOOLS": "OFF", "BUILD_TESTS": "OFF", "CMAKE_BUILD_PARALLEL_LEVEL": "32", }, lib_source = "@libtiff_src//:all_srcs", out_include_dir = "include", out_static_libs = [ "libtiff.a", "libtiffxx.a", ], visibility = ["//visibility:public"], deps = [ "@libjpeg_turbo", "@simde", "@zstd", # "@zlib", ], ) [/code] Как видите, я также пытался отключить поддержку jpeg, но безуспешно. Поэтому я решил продолжить путь, чтобы запустить его с функциями jpeg. Код находится здесь: https://github.com/dreisicht/libtiff_bazel Чтобы собрать его, просто вызовите bazel build :libtiff Любая подсказка будет очень приветствоваться!