c++ - 如何在 macOS 中使用(链接)调试版本的 libc++?

标签 c++ macos clang llvm libc++

我想在 macOS 中启用 libc++ 的调试版本,因此我在 cxx_build_flags [Debug Version of libC++] 中定义 _LIBCPP_DEBUG=1 , 但无法链接libc++的调试功能。我猜我的系统中只有发行版本的libc++,那么如何在macOS中获取libc++的调试版本

Undefined symbols for architecture x86_64:
"std::__1::__libcpp_db::__decrementable(void const*) const", referenced from:
  void std::__1::__nth_element<std::__1::__debug_less<std::__1::__less<float, float> >&, std::__1::__wrap_iter<float*> >(std::__1::__wrap_iter<float*>, std::__1::__wrap_iter<float*>, std::__1::__wrap_iter<float*>, std::__1::__debug_less<std::__1::__less<float, float> >&)

最佳答案

我想我已经成功了!

所以我采取的步骤,

  1. 检查您的工具链 __config 文件中的 _LIBCPP_VERSION 值。
  2. 浏览源存储库以查找设置该版本的提交
  3. 从该提交中找到 debug.cpp 文件
  4. 在您的项目中包含/编译/链接 debug.cpp(并记住设置 _LIBCPP_DEBUG=1)。

对我来说,这些步骤的中间结果是(使用 Catalina,XCode 版本 11.3.1)

关于c++ - 如何在 macOS 中使用(链接)调试版本的 libc++?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49508069/

相关文章:

c++ - -mmacosx-version-min 影响位域的打包行为?

c++ - 与类型同名的类型别名

c++ - C++ 与 C++.NET 之间的主要区别是什么?

c++ - 如何指定指向参数数量未知的 C 函数的 C++ 指针?

c++ - C++中MD5的快速实现

macos - 在 Mac OS 上启动 Squirrel SQL 客户端

python - 在 tkinter 上运行的多个应用程序/文件/windows 实例

macos - 在命令行 xcodebuild 调用后分发 .app 文件

python - 安装 `dulwich` 给出 `error: command ' clang' failed with exit status 1`

xcode - 使用 swift 为 Xcode 项目自定义链接器