2014年3月21日星期五

CDT开发环境配置(MacOSX 10.9)

Mac提供的XCODE,可以调试C/C++程序,但XCODE对C/C++程序开发并不方便,重构等功能不能用,在编辑、重构方面还是Eclipse具备优势。所以,开发Android的C/C++程序,最好用Eclipse的CDT。
当然,XCODE5是需要安装的,但XCODE5用的调试工具不是gdb,而是lldb,而CDT用的是gdb,需要先安装gdb,在MacOSX用调试工具还需要代码签名,过程非常繁琐,这里将CDT的开发环境配置详细说明。

1. 安装GDB

用mac ports工具安装:
# sudo port install gdb
安装完成后,会提示你:
You will need to make sure
/System/Library/LaunchDaemons/com.apple.taskgated.plist has the '-p' option,
e.g.
            <key>ProgramArguments</key>
            <array>
                    <string>/usr/libexec/taskgated</string>
                    <string>-sp</string>
            </array>
修改这个文件,将红色部分替换为上面的文字,此文件需要管理员权限:
# sudo vi /System/Library/LaunchDaemons/com.apple.taskgated.plist
安装好的gdb的文件位置:/opt/local/bin/ggdb。注意,命令为ggdb。

2. 配置GDB

要gdb能够在Eclipse中正常调试,必须代码签名。

2.1 创建代码签名证书

运行 应用程序 -> 其他 -> 钥匙串访问。如下图:

取一个名称:gdbcert,证书类型选择:代码签名,勾选“让我覆盖这些默认值”,如下图:

一直按“继续”,到最后一屏,在钥匙串中选择“系统”,如下图:

点击创建,输入你的密码后,代码签名证书就创建了。如下图:

在“gdbcert”证书上按右键,选择“显示简介”,选择“总是信任”,如下图:

关闭时会要求输入密码。然后,退出“钥匙串访问”。

2.2 签名证书

先重启taskgated,在终端里,输入如下命令:
# killall taskgated
签名证书,需要启用root用户,进入 系统偏好设备 -> 用户与群组,如下图:


点击网络帐户服务器右边的“加入”按钮,出现下图:

点击“打开目录实用工具”,如下图:

 选择菜单项 编辑 -> 启用Root用户。再输入两次ROOT用户的密码就可以了。接下来就是签名了。在终端里:
# su root
# codesign -fs gdbc /opt/local/bin/ggdb
# sudo ln -s /opt/local/bin/ggdb /opt/local/bin/gdb
这样,ggdb调试程序的代码签名就完成了,可以在Eclipse里调试了。最后面是用了一个符号连接,方便直接使用gdb命令。

3. 调试C/C++程序

3.1 安装CDT

如果你没有安装CDT插件,请在Eclipse下面安装CDT,打开Eclipse,选择“Help”-> “Install New Software”,我的Eclipse版本是Kepler,如下图:
按照默认往下即可完成安装。

3.2 调试

用 New C++ Project 向导,新建一个工程。在工程项目上按右键,按 Debug As -> Debug Configurations,如下图:


配置好GDB的路径:/opt/local/bin/gdb。点击“Debug”即可调试程序。







没有评论:

发表评论