OSX上的clang:-finstrument-functions链接错误
Posted
技术标签:
【中文标题】OSX上的clang:-finstrument-functions链接错误【英文标题】:clang on OSX: -finstrument-functions link errors 【发布时间】: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++ :/ 【参考方案1】:在 gcc 中,-finstrument-functions-exclude-file-list=stdlib/include
会做你想做的事。但是,它还没有在clang中实现(至少trunk不识别这个选项)。
【讨论】:
【参考方案2】:Clang 有一个选项 -finstrument-functions-after-inlining
在这种情况下可以使用。是的,不幸的是,clang 不支持基于文件/目录禁用检测。如果检测太麻烦,那么更改标准 C++ 库的源代码以添加属性也可能会有所帮助。见:https://***.com/a/69474100/811335
【讨论】:
以上是关于OSX上的clang:-finstrument-functions链接错误的主要内容,如果未能解决你的问题,请参考以下文章
mac osx 10.9.2 上的 mysql-python:错误:命令“/usr/bin/clang”失败,退出状态为 1