omp_set_num_threads(x)
指令)。我可以使用命令
clang -Xclang -fopenmp -L/opt/homebrew/opt/libomp/lib -I/opt/homebrew/opt/libomp/include -lomp main.c
在终端中构建并执行它。我想做的是在Xcode中以同样的方式编译和运行。所以,我做了以下事情。
在我的“目标”的“构建设置”中,我添加了:
-Xclang
和
-fopenmp
/opt/homebrew/opt/libomp/include
/opt/homebrew/opt/libomp/lib
-lomp
dyld`__abort_with_payload:
0x19ec54620 <+0>: mov x16, #0x209 ; =521
0x19ec54624 <+4>: svc #0x80
-> 0x19ec54628 <+8>: b.lo 0x19ec54648 ; <+40> Thread 1: signal SIGABRT
0x19ec5462c <+12>: pacibsp
0x19ec54630 <+16>: stp x29, x30, [sp, #-0x10]!
0x19ec54634 <+20>: mov x29, sp
0x19ec54638 <+24>: bl 0x19ebece60 ; cerror_nocancel
0x19ec5463c <+28>: mov sp, x29
0x19ec54640 <+32>: ldp x29, x30, [sp], #0x10
0x19ec54644 <+36>: retab
0x19ec54648 <+40>: ret
然后,我还尝试输入:,而不是“其他链接器标志”中的
-lomp
值
/opt/homebrew/opt/libomp/lib/libomp.a
。应用程序已构建并成功运行。
/opt/homebrew/opt/libomp/lib/libomp.dylib
。行为与我输入时相同
-lomp
。
可以按照我在问题中所述自由加载动态库。当涉及到
0 __abort_with_payload point
时,通过在“签名和功能”下的项目设置(选择 .xcodeproj 文件)中既没有“应用程序沙箱”也没有“强化运行时”来解决问题。 通过拥有
<projectname>.entitlements
文件也可以实现同样的目的。