如何在 xcode 中启用 boost 库

How to enable boost library in xcode

我在 Xcode 中将 boost 库添加到我的项目时遇到问题。 似乎 boost 的某些部分可以正常工作,但是当我使用其中的某些部分时,会出现以下错误。 示例-boost 纤维库:

Undefined symbols for architecture arm64:
  "boost::fibers::future_category()", referenced from:
      std::make_error_code(boost::fibers::future_errc) in main.o
  "boost::fibers::condition_variable_any::notify_all()", referenced from:
      boost::fibers::condition_variable::notify_all() in main.o
  "boost::fibers::mutex::lock()", referenced from:
      std::__1::unique_lock<boost::fibers::mutex>::unique_lock(boost::fibers::mutex&) in main.o
  "boost::fibers::mutex::unlock()", referenced from:
      std::__1::unique_lock<boost::fibers::mutex>::unlock() in main.o
      std::__1::unique_lock<boost::fibers::mutex>::~unique_lock() in main.o
  "boost::fibers::wait_queue::empty() const", referenced from:
      boost::fibers::condition_variable_any::~condition_variable_any() in main.o
      boost::fibers::mutex::~mutex() in main.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

根据我的经验,在 macOS 上安装 boost 的最佳方法是安装 homebrew 包管理器。然后在终端中输入 brew install boost,这会在你的机器上为你安装 boost 库。要在 Xcode 打开项目中启用提升,然后从那里导航到构建设置 select header 搜索路径并粘贴提升 header 文件的位置。 (通常位于 usr/local/include)用于 header,通常位于 usr/local/lib)用于库文件。 How to enable boost in xcode

您需要在 Xcode 中手动添加库文件。例如,你使用的是boost/fiber,那么你至少应该在你的Xcode项目中添加相应的库文件libboost_fiber-mt.dylib。该文件应位于 hombrew/lib。要添加它,您只需将它拖到 Targets->General->Frameworks and Libraries:


这应该可以解决大部分未定义符号问题。根据您的项目,您可能还想将其他库(例如 libboost_contextlibboost_filesystem 添加到您的项目中。