使用安装了 GCC 4.9 的 MacPorts 调试符号错误?
Posted
技术标签:
【中文标题】使用安装了 GCC 4.9 的 MacPorts 调试符号错误?【英文标题】:Debug symbol bug with MacPorts installed GCC 4.9? 【发布时间】:2015-01-04 07:11:16 【问题描述】:我最近通过 MacPorts 安装了 GCC 4.9.2(端口名称 gcc49)。我对它的新功能非常满意,例如彩色诊断和 C++1y/C++14 支持改进等。
但是,自从我开始使用 GCC 4.9.2 编译代码后,我意识到它没有生成调试符号目录 *.dSYM
,当我尝试调试使用 @ 编译的程序时,gdb 说“没有找到调试符号” 987654322@标志。
这是 MacPorts 特有的错误还是 GCC 4.9 有问题?
谢谢
【问题讨论】:
【参考方案1】:这不是 MacPorts 特定的问题。 MacPorts 对自定义 gcc 端口的作用并不大。
如果你想创建一个 dSYM 包并剥离你的可执行文件,你应该这样做:
gcc-mp-4.9 -g3 -c example.c
gcc-mp-4.9 example.o -o example
dsymutil --out example.dSYM example
strip -S -x example
附带说明,如果您想要 C++11/C++14 支持,我建议您使用 clang-3.5 端口,因为这将允许您使用系统中的 libc++ 而不是 MacPorts 中的 libstdc++(并允许您可以使用系统和 MacPorts C++ 库,而不仅仅是 STL)。此外,lldb 确实是当今 OS X 的首选调试器。
【讨论】:
谢谢,它成功了,但我喜欢只使用-g
和gcc-mp-4.8
来获取调试符号目录。我确实应该开始使用 lldb...以上是关于使用安装了 GCC 4.9 的 MacPorts 调试符号错误?的主要内容,如果未能解决你的问题,请参考以下文章
Qt 5.1 for OSX 安装只包含 clang_64 目录,如何使用 macports gcc 编译?
即使在安装 4.9 (Homebrew) 后 gcc 版本仍显示 4.2.1