簡體   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