使用 MacPorts 安装 GCC 4.9 调试符号错误?

Debug symbol bug with MacPorts installed GCC 4.9?

我最近通过 MacPorts 安装了 GCC 4.9.2(端口名称 gcc49)。我对它的新功能非常满意,例如彩色诊断和 C++1y/C++14 支持改进等

但是,自从我开始使用 GCC 4.9.2 编译代码后,我意识到它没有生成调试符号目录 *.dSYM 并且当我尝试调试程序时 gdb 说 "no debugging symbols found"使用 -g 标志编译。

这是 MacPorts 特有的错误还是 GCC 4.9 有问题?

谢谢

这不是 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 的首选调试器。