使用安装了 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 的首选调试器。

【讨论】:

谢谢,它成功了,但我喜欢只使用-ggcc-mp-4.8 来获取调试符号目录。我确实应该开始使用 lldb...

以上是关于使用安装了 GCC 4.9 的 MacPorts 调试符号错误?的主要内容,如果未能解决你的问题,请参考以下文章

Qt 5.1 for OSX 安装只包含 clang_64 目录,如何使用 macports gcc 编译?

编译安装 gcc 4.9并验证使用

高版本fedora安装gcc 4.9

即使在安装 4.9 (Homebrew) 后 gcc 版本仍显示 4.2.1

在windows上安装gcc 4.9并在Netbeans中配置

在不安装 Xcode 的情况下将 GCC 安装到 Mac OS X Leopard