在macOS 12上出现运行时错误'symbol not found in flat namespace',但在macOS 10.15上未出现,包含Xcode和CMake内部版本

bvn4nwqk  于 2023-01-21  发布在  Mac
关注(0)|答案(1)|浏览(1199)

我在macOS Monterey(v12.6.1)下使用cmake为C实现的简单疾病传播模型构建可执行文件时遇到问题。当我构建可执行文件时,我尝试运行它时遇到以下错误:
dyld[5281]:在平面名称空间(_cblas_caxpy)中找不到符号中止陷阱:6
当我尝试使用XCode(v14.0.1)时,问题仍然存在,导致相同的错误消息。
有趣的是,我的朋友能够在macOS v10. 15. 7下构建(和运行)可执行文件,没有任何问题。
有谁知道这是怎么回事,以及如何解决这个问题吗?C
项目在GitHub上是公开的:https://github.com/AnnaMariaL/DengueSim
任何帮助都将不胜感激。
谢谢!
安娜

  • 尝试:在MacOS v12.16.1下使用cmake和Xcode构建可执行文件
  • 预期:可执行文件
  • 当在Xcode下启动时,程序运行良好,但如果我尝试在命令行上运行Xcode生成的可执行文件,则会失败,并出现与CMake可执行文件相同的错误。2因此,Xcode本身不知何故,神奇地能够解决这个链接器问题。
1wnzp6jl

1wnzp6jl1#

你的标题/帖子非常混乱,但问题不在于cmake,而在于你的cblas library和/或你的linker。仔细查看这个bug:

dyld[5281]: symbol not found in flat namespace (_cblas_caxpy) Abort trap: 6

链接器告诉您它找不到函数(symbol)。**这可能是由于您的链接器不知道在哪里可以找到正确的库,或者您链接的是没有这些符号的错误版本的库。**其他问题可能与库的构建方式以及构建内容有关(架构,编译器,等等......)。这个问题我们无法回答,因为我们没有足够的信息来确定。

相关问题