问题描述
我正在为基于JUCE的音频插件项目设置MacOS通用二进制版本(x86_64和arm64)。 x86_64构建具有一些IPP库(仅x86)作为依赖项,而ARM构建使用一些由我们编写的特定于ARM的替换例程。因此,我需要设置CMake以将插件构建为通用二进制文件,但仅链接到x86_64部分的IPP库。到目前为止,我的方法看起来像这样
# somewhere at the top of my CMakeLists.txt
set(CMAKE_OSX_ARCHITECTURES arm64 x86_64)
set(ONLY_ACTIVE_ARCH NO)
# somewhere later the IPP stuff is handled
add_library(ALL_IPP INTERFACE)
set(IPP_ROOT "/opt/intel/ipp")
target_include_directories(ALL_IPP INTERFACE "${IPP_ROOT}/include")
add_library(ippi STATIC IMPORTED GLOBAL)
add_library(ipps STATIC IMPORTED GLOBAL)
add_library(ippvm STATIC IMPORTED GLOBAL)
add_library(ippcore STATIC IMPORTED GLOBAL)
set (IPP_LIB "${IPP_ROOT}/lib")
set_target_properties(ippi PROPERTIES IMPORTED_LOCATION ${IPP_LIB}/libippi.a OSX_ARCHITECTURES x86_64)
set_target_properties(ipps PROPERTIES IMPORTED_LOCATION ${IPP_LIB}/libipps.a OSX_ARCHITECTURES x86_64)
set_target_properties(ippvm PROPERTIES IMPORTED_LOCATION ${IPP_LIB}/libippvm.a OSX_ARCHITECTURES x86_64)
set_target_properties(ippcore PROPERTIES IMPORTED_LOCATION ${IPP_LIB}/libippcore.a OSX_ARCHITECTURES x86_64)
target_link_libraries(ALL_IPP INTERFACE ippi ipps ippvm ippcore)
# somewhere later
target_link_libraries(myPlugin PRIVATE ALL_IPP)
ld: warning: ignoring file /opt/intel/ipp/lib/libippi.a,building for macOS-arm64 but attempting to link with file built for unkNown-x86_64
我对CMake并没有那么丰富的经验,所以很可能我在这里选择了一种完全错误的方法,或者只有一个愚蠢的错误。感谢所有帮助!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)