在 M1 MacBook 上使用 React Native 版本 0.72.4 升级到 Xcode 15 后,我在这里收到此错误:
ld: warning: could not create compact unwind for _fa3d73c773a947d51: does not use RBP or RSP based frame
ld: warning: Could not find or use auto-linked framework 'CoreAudioTypes'
Undefined symbols for architecture x86_64:
"_qwjicc_jpeg_CreateCompress", referenced from:
_convertRGB2Jpeg in ToygerServiceAlgo(JpegTool.cpp.o)
"_qwjicc_jpeg_destroy_compress", referenced from:
_convertRGB2Jpeg in ToygerServiceAlgo(JpegTool.cpp.o)
"_qwjicc_jpeg_finish_compress", referenced from:
_convertRGB2Jpeg in ToygerServiceAlgo(JpegTool.cpp.o)
"_qwjicc_jpeg_mem_dest", referenced from:
_convertRGB2Jpeg in ToygerServiceAlgo(JpegTool.cpp.o)
"_qwjicc_jpeg_set_defaults", referenced from:
_convertRGB2Jpeg in ToygerServiceAlgo(JpegTool.cpp.o)
"_qwjicc_jpeg_set_quality", referenced from:
_convertRGB2Jpeg in ToygerServiceAlgo(JpegTool.cpp.o)
"_qwjicc_jpeg_start_compress", referenced from:
_convertRGB2Jpeg in ToygerServiceAlgo(JpegTool.cpp.o)
"_qwjicc_jpeg_std_error", referenced from:
_convertRGB2Jpeg in ToygerServiceAlgo(JpegTool.cpp.o)
"_qwjicc_jpeg_write_scanlines", referenced from:
_convertRGB2Jpeg in ToygerServiceAlgo(JpegTool.cpp.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
该应用程序曾经在 Xcode 14.3 上运行,但更新到 macOS Sonoma 后,不再是一个选项,因为 Xcode 15 是最低版本。
有人熟悉这个错误吗?我该如何解决这个问题?
已尝试将 CoreAudioTypes 框架添加到构建阶段,也仅将 arm64 添加到排除的架构中,但错误仍然存在。
您遇到的错误是由于链接器无法找到 x86_64 架构的符号造成的。这是因为您用于 JPEG 压缩的库 (qwjicc) 是为 M1 芯片使用的 arm64 架构构建的。链接器正在尝试查找 x86_64 架构的符号,这些符号不存在于您正在使用的库中。
要解决此问题,您需要重新编译 x86_64 架构的库。不幸的是,qwjicc 库似乎不支持这种架构。但是,您可以使用同时支持 arm64 和 x86_64 的替代库。 libjpeg-turbo 就是这样的一个库。
您可以将 libjpeg-turbo 添加为 Podfile 或其他配置文件中的依赖项
pod install libjpeg-turbo