【问题标题】:Xcode 4 external build project and debuggingXcode 4 外部构建项目和调试
【发布时间】:2011-11-25 23:55:39
【问题描述】:

我设置了一个基于 makefile 的项目,可以在多个平台上构建我的代码。在我的 Mac 上,我想使用 Xcode 进行调试。我已经将 Xcode 设置为外部构建项目,我可以在 Xcode 中运行应用程序。输出显示在 Xcode 中,如果应用程序崩溃,它会进入调试器,但是在运行调试器时无法找到源文件,所以我只看到程序集输出。我如何告诉 Xcode 在哪里找到源代码?

我也不能设置断点,但我认为这都是同一个问题。

【问题讨论】:

  • 我找不到解决方案,所以我放弃并为库创建了一个普通的 Xcode 项目。这确实意味着我需要维护 Makefile、Xcode 和可能的 Visual Studio 构建,但至少我已经恢复了我的调试器。

标签: c++ xcode4


【解决方案1】:
  1. 确保 -g 包含在 makefile 的编译器选项中。
  2. 在方案中设置自定义工作目录,如果尚未设置,请设置可执行文件。
  3. 确保项目没有引入未使用 -g 编译的 dylib。如果项目构建 dylib 以及主要目标,您可能需要一个构建步骤来运行 make install。
  4. 确保没有调用“strip”。 xcode 设置了一些环境变量,允许您在 xcode 外部使用时保持工作的 makefile。

刚刚遇到了这个问题,并且成功了(Xcode 4.6)(得到源代码调试和工作断点)

【讨论】:

    【解决方案2】:

    我能够通过为可执行文件设置自定义工作目录来解决不停止在断点处的问题。 在此更改之前,我能够使用 Xcode 4 中的外部 scons 系统成功构建。我的代码在从 XCode 调用时会运行,但断点会被忽略。

    然后在 XCode 中, 转到产品-> 编辑方案... 检查“使用自定义工作目录” 我将其设置为与可执行文件相同的目录。

    然后断点开始工作。

    【讨论】:

    • 谢谢。我已经尝试过了,它可以工作。起初它没有,但那是因为我正在执行非调试构建,一旦我更改为调试可执行文件,它就开始工作了。我真的很高兴我现在可以做到这一点,因为我不得不维护两个构建,一个在 Xcode 中,一个在外部,这不太理想。
    【解决方案3】:

    在“Project Navigator”(“Run”按钮下方的文件夹图标)中,右键单击并选择“Add Files To your-project”。浏览到您通常会在其中运行外部构建的顶级文件夹,然后单击添加。

    【讨论】:

    • 我已经添加了所有的源文件。起初我将其作为文件夹引用(蓝色文件夹),但我也尝试添加组和文件(黄色文件夹),但都没有奏效。在普通项目中,您还需要选中“目标成员”框,但在外部构建项目中禁用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-18
    • 1970-01-01
    • 2013-11-23
    相关资源
    最近更新 更多