我有一台MacBook M1,已经在我的设备上安装了一个为x86 / Intel架构编译的库。我有一些使用OpenMP的源代码。我想使用clang编译我的代码,并链接到x86库。
我可以按照这里的说明编译没有x86依赖项的源代码,使用brew分发的clang实现。
但是当我尝试使用
是否可能在MacBook M1上安装一个版本的clang,其中OpenMP库是针对x86架构构建的?
以下是我在当前设置下使用的错误示例,即使不链接到x86库也会出现这个错误。
源代码:
错误信息:
我可以按照这里的说明编译没有x86依赖项的源代码,使用brew分发的clang实现。
但是当我尝试使用
-arch x86_64
参数进行编译并链接到x86库时,我发现clang会尝试将我的可执行文件链接到为arm64架构构建的OpenMP库。是否可能在MacBook M1上安装一个版本的clang,其中OpenMP库是针对x86架构构建的?
以下是我在当前设置下使用的错误示例,即使不链接到x86库也会出现这个错误。
源代码:
#include <omp.h>
int main()
{
return 0;
}
编译器调用:
/opt/homebrew/opt/llvm/bin/clang++ -arch x86_64 omp_ex.cpp \
-L/opt/homebrew/opt/llvm/lib -Wl,-rpath,/opt/homebrew/opt/llvm/lib \
-I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include
错误信息:
ld: in '/opt/homebrew/opt/llvm/lib/libunwind.dylib', building for macOS-x86_64 but attempting to link with file built for macOS-arm64
clang-12: error: linker command failed with exit code 1 (use -v to see invocation)