【问题标题】:dyld: Symbol not found: _PyBaseObject_Typedyld:找不到符号:_PyBaseObject_Type
【发布时间】:2020-04-18 13:27:39
【问题描述】:

我想在我的 C++ 代码中使用 Boost 库,所以我输入了正确的包含搜索路径和正确的库搜索路径,然后我在 Xcode 中添加了所有 Boost 库文件。当我构建我的代码时,编译器说构建成功。但是,一旦我运行代码,控制台就会告诉您:

控制台:

dyld: Symbol not found: _PyBaseObject_Type
  Referenced from: /usr/local/lib/libboost_python27.dylib
  Expected in: flat namespace
 in /usr/local/lib/libboost_python27.dylib
Program ended with exit code: 9

我的代码:

#include <iostream>
#include <boost/any.hpp>

int main()
{
    std::cout << std::endl;
    return 0;
}

我的错误在哪里?请帮忙。

【问题讨论】:

  • Boost 不是库,它是相当庞大的库集。 boost::any 的使用感觉毫无意义,因为 any 是由 C++17 作为 std::any 添加到 C++ 中的。所以只需包含 并使用 std::any.
  • @ÖöTiib any 只是一个例子。任何库都会引发错误。
  • 如果每个库都有,那么显然是您如何安装库或将它们合并到您的项目中的问题。阅读stackoverflow.com/questions/12573816/… 了解常见原因。
  • 我遇到了同样的问题。你解决了吗?
  • @ZackLee 是的,但我不太喜欢这个解决方案。我刚刚通过自制软件安装了 Boost。

标签: c++ macos boost boost-python macos-catalina


【解决方案1】:

当您没有以正确的方式将包添加到项目时会发生此错误。在我的示例中,通过 Homebrew 安装 Boost 解决了这个问题。以正确的方式安装包意味着如果你手动安装它(例如从 GitHub 下载它),你应该将它安装在正确的路径上。但我建议始终通过 Homebrew 安装 C++ 包。

【讨论】:

    猜你喜欢
    • 2015-05-02
    • 2016-06-01
    • 2021-12-30
    • 2020-07-22
    • 2019-08-18
    • 2020-02-13
    • 2017-01-29
    • 2019-01-01
    • 1970-01-01
    相关资源
    最近更新 更多