【问题标题】:clang on OSX: -finstrument-functions link errorsOSX上的clang:-finstrument-functions链接错误
【发布时间】:2013-02-26 02:54:10
【问题描述】:

我正在尝试使用__cyg_profile_func_*-finstrument-functions 在函数运行前后进行特定检查(例如,检查马赫端口泄漏等)。这是在 OS X 上。

代码已编写且功能齐全,但我有大量未定义的引用,例如,

std::__1::basic_ios<wchar_t, std::__1::char_traits<wchar_t> >::init(std::__1::basic_streambuf<wchar_t, std::__1::char_traits<wchar_t> >*)

似乎正在发生某种内联,但检测仍在尝试引用该函数的非内联版本。是否可以免除标准 C++ 库的检测?或者,可以在这种特殊情况下完全禁用 clang 中的内联?

干杯!

【问题讨论】:

  • 我遇到了完全相同的问题。似乎启用 -finstrument-functions 使 clang 无法链接到 libc++ :/

标签: macos clang instrumentation


【解决方案1】:

在 gcc 中,-finstrument-functions-exclude-file-list=stdlib/include 会做你想做的事。但是,它还没有在clang中实现(至少trunk不识别这个选项)。

【讨论】:

    【解决方案2】:

    Clang 有一个选项 -finstrument-functions-after-inlining 在这种情况下可以使用。是的,不幸的是,clang 不支持基于文件/目录禁用检测。如果检测太麻烦,那么更改标准 C++ 库的源代码以添加属性也可能会有所帮助。见:https://stackoverflow.com/a/69474100/811335

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-11
      • 2011-09-12
      • 2016-03-31
      • 2016-04-21
      • 1970-01-01
      • 2019-08-26
      • 2012-08-12
      相关资源
      最近更新 更多