[分享]]编译mac下的lldb
mac的xcode里是有lldb的,因为我写的项目需要把lldb包裹到自己的子进程,遇到了一个问题,就是标准输入输出重定向到管道的时候,输出缓存变为全缓存模式,无法及时读取到lldb的输出,我的程序就没法工作了,所以我要修改一下lldb的源码来适应我的项目,改来改去也没改好,有点弱,确发现了用plink连接mac终端时lldb的命令行会有乱码的原因,原来mac终端输出的文字可以改变颜色。那些乱码是颜色信息。
这里是官网的编译指引,http://lldb.llvm.org/build.html,不过说的简直简单的发指。并且我按照官网的方法没编译出来。我是按照网上其他的帖子编译成功的。
1.签名:(忘了这步了,补充一下,如果不生成签名,编译出来的lldb不能运行)
按照lldb-master/docs/code-signing.txt的步骤来。
1> 打开“钥匙串访问”程序, 选中左侧的登录选项。
2> 菜单上选 钥匙串访问->证书助理->创建证书...
3> 填写 名称:lldb_codesign ,身份类型:自签名根证书 ,证书类型:代码签名
4> 然后点击 创建->继续->完成
5> 选中左侧种类标签里的我的证书,双击刚创建的lldb_codesign证书
6> 在“使用此证书时”标签里选 始终信任,然后关闭这个窗口,会弹出一个输入密码认证的窗口,输入你的管理员密码,然后点更新设置。
7> 把这个证书从登录选项卡用鼠标拖拽到系统选项卡,会出现两次输入管理员密码的窗口,输入密码,然后出现的窗口选择始终允许。
8> 把系统标签下的这个lldb_codesign证书拖拽到桌面
9> 打开终端,执行命令:
sudo security add-trust -d -r trustRoot -p basic -p codeSign -k /Library/Keychains/System.keychain ~/Desktop/lldb_codesign.cer
rm -f ~/Desktop/lldb_codesign.cer
10>把系统标签下的lldb_codesign证书拖拽回登录标签下,弹出让输入管理员密码的窗口,输入密码
11>重启系统,然后开始编译lldb就行了
2.编译步骤:
1>下载lldb
下载github上的lldb,网址是:https://github.com/llvm-mirror/lldb ,这个说是每5分钟同步一次管网数据,应该是可信的吧
2> 安装swig
brew install swig
3> 开始编译,解压完在lldb-master文件夹里,使用终端进入这个文件夹
xcodebuild -configuration Release
编译完成后,lldb-master目录下的build/Release下就有lldb了。
顺便说一下我的mac系统版本是10.12
