Xcode 我是否需要在本地构建LLDB以使用C++;接口?

Xcode 我是否需要在本地构建LLDB以使用C++;接口?,xcode,llvm,lldb,Xcode,Llvm,Lldb,我已经安装了XCode 5,我可以很好地使用命令行lldb。现在我想创建自己的应用程序,它将与LLDB C++接口连接。我试图搜索XCode包,但没有找到.a存档,没有标题。这是否意味着我需要在本地构建LLDB(并完成签名过程)?确实正确,Xcode附带的LLDB.framework中没有包含头文件 话虽如此,您有两种可能的途径: 正如您所说,从源代码构建LLDB,然后使用构建的ToT编写应用程序 从我们的开源存储库中获取头文件,并将它们放在Xcode提供的LLDB.framework中的神奇

我已经安装了XCode 5,我可以很好地使用命令行lldb。现在我想创建自己的应用程序,它将与LLDB C++接口连接。我试图搜索XCode包,但没有找到.a存档,没有标题。这是否意味着我需要在本地构建LLDB(并完成签名过程)?

确实正确,Xcode附带的LLDB.framework中没有包含头文件

话虽如此,您有两种可能的途径:

  • 正如您所说,从源代码构建LLDB,然后使用构建的ToT编写应用程序
  • 从我们的开源存储库中获取头文件,并将它们放在Xcode提供的LLDB.framework中的神奇位置,这将使您能够成功地链接到您拥有的任何LLDB
咒语应该是在LLDB.framework/Versions/A中创建一个Headers文件夹,并将所有PUBLIC头从我们的源文件复制到其中(您需要LLDB.h、所有SB*.h文件和LLDB定义、枚举、转发、公共、类型、版本控制.h)-然后进入LLDB.framework并将名为Headers的符号链接到Versions/Current/Headers


仅供参考——公共API(SB*.h)是所有得到大力支持并保证相对稳定的API。如果您开始尝试使用私有层(lldb_private::*),您将自己独立,并且随着调试器内部的“接口”演变,中断可能会相当频繁,您是指API吗?什么是“签名过程”?@H2CO3我的意思是与LLDB链接并使用。Mac上需要签名,这样调试器才能真正调试。谢谢。我目前正在尝试建立它。你是否碰巧知道LLDB3.3不能用XCode5构建?我昨天试过了,但显然由于平台SDK中的头文件出现了一些问题,所以失败了,我没有时间进一步研究。在Enrico的报告中,我想变得更强一点。如果您使用lldb_私有API,那么您不仅会看到API中的更改,还会看到它下面所有对象大小的更改。您的代码几乎可以保证只与您在构建代码的同时构建的lldb版本一起工作。OTOH,我们很高兴向SB API集中添加有用的API,因此如果您在lldb_private API中找到任何东西,但在SB API中没有,请随意添加它并向lldb开发团队提交补丁。你可以通过访问lldb.llvm.org了解更多信息。老实说,我不确定。3.3和类似版本是LLVM版本号,通常对LLDB来说意义不大。LLDB倾向于使用自己的版本号(例如LLDB-300.x.y),因此,了解3.3版选用的是哪个(如果有的话)LLDB版本,或者它最终是否只是一个随机的SVN版本是很有意思的。Xcode中包含的LLDB框架可能有一些苹果自己的补丁,并且不太可能与当前的开源LLDB公共API兼容。苹果提供了他们的LLDB源代码,但它是非常旧的版本(310.x),并且似乎无法与Xcode的当前版本(320.x)一起使用。(我的快速测试不起作用,但我可能遗漏了一些东西)