繁体   English   中英

macOS 12 上的运行时错误“在平面命名空间中找不到符号”,但 macOS 10.15 上没有,同时具有 Xcode 和 CMake 版本

[英]runtime error ‘symbol not found in flat namespace’ on macOS 12 but not macOS 10.15, with both Xcode and CMake builds

我在为 C++ 中实现的简单疾病传播 model 构建可执行文件时遇到问题,在 macOS Monterey (v12.6.1) 下使用 cmake。 当我构建可执行文件时,当我尝试运行它时出现以下错误:

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 可执行文件相同的错误。 所以 Xcode 本身以某种方式神奇地解决了这个 linker 问题。

您的标题/帖子非常令人困惑,但问题不在于 cmake。它与您的cblas library和/或您的linker 有关 仔细看看错误:

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

您的 linker 告诉您它在给定的命名空间中找不到 function(符号)。 这可能是因为您的 linker 不知道在哪里可以找到正确的库,或者您链接的是没有符号的错误版本的库。 其他问题可能与库的构建方式和构建内容(体系结构、编译器等)有关。 这个我们无法回答,因为我们没有足够的信息来确定。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM