【问题标题】:Run and Debug a complete C project with Xcode使用 Xcode 运行和调试完整的 C 项目
【发布时间】:2020-03-08 02:53:14
【问题描述】:

我正在尝试在 Xcode 中使用 C 项目(带有 Makefile),主要目的是在项目本身上使用调试器。

我从以下site 站点执行了以下步骤:

  1. 文件 -> 新建 -> 项目

  2. 在跨平台选项卡下,使用外部构建系统模板。为其命名并完成设置:

  3. 然后,转到主目标的信息选项卡,并将目录更改为包含 Makefile 的目录

在上面的链接中,他继续说要创建一个新目标

  1. 文件 -> 新建 -> 目标

  2. 在 macOS 选项卡下,使用命令行工具模板。为其命名,设置语言并完成设置。

  3. 现在我们要将源代码文件夹(我也用 .h 导入导入文件夹)拖到 Xcode 项目中。

  4. 在下一个屏幕的“添加到目标”部分下,确保标记先前创建的目标(在第 4 步中创建的目标)。

现在,如果我运行除 4、5 和 7 之外的所有点,我会得到相同(不完整)的结果。 构建工作完美,构建目标文件,链接所有内容并构建工作执行器。 但是..我没有办法运行这个项目。也可以按顶部的播放符号。它只运行构建。 结果显然我无法使用调试和断点。 我的主要目标。

请注意,Makefile 文件使用 -g 标志。

使用设置为 C 的命令行模板创建一个简单的 xCode 项目。 在一切正常的地方,我注意到了以下几点:

上图是使用模板创建的项目的报告,我在我的项目中构建了(模板的绿色部分)但我错过了调试(红色部分)

建筑设置中可能有一些设置需要修复。

【问题讨论】:

    标签: c xcode debugging makefile build


    【解决方案1】:

    我终于成功了:

    将一个完整的 C 项目(带有源文件和头文件)导入 Xcode,其中有一个 Makefile 负责创建 .o 和执行文件。

    这是项目的图表:

                                       PrjDir/
                                          |   
              +-------------------+-------------------+-------------------+-------------------+
              |                   |                   |                   |                   |
             bin/                 src/                include/            build/            xcodeDir/
              |                   |                    |                  |                   |
             exe                  file.c              file.h      Makefile output/          tA.xcodeproj
                                                                            |                    
                                                                          file.o
    

    必须执行上述问题中网站中描述的所有步骤。

    现在明白了:

    我们将第一个目标称为“tA”,即使用“外部构建系统”模板创建的目标(这也是 Xcode 项目的名称)。

    而“tB”是使用“命令行工具”模板创建的(上面的第 4 点)。

    我们必须修改“tA”的架构,以便可执行文件引用目标“tB”。

    然后你必须去'tB'“Build Settings”,在搜索“other c”中写,然后在“Other C Flags”面板中输入:“I-completePath/PrjDir/include/”

    运行和构建,也可以在任何文件的任何点插入断点。

    一切都按预期进行!

    【讨论】:

      猜你喜欢
      • 2017-01-20
      • 2017-09-16
      • 1970-01-01
      • 1970-01-01
      • 2021-01-25
      • 2020-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多