【问题标题】:creating an XCode project with existing code使用现有代码创建 XCode 项目
【发布时间】:2011-08-21 23:21:49
【问题描述】:

我正在将 Linux 应用程序移植到 Mac。我有不同的文件,其中包含可以使用标准 Makefile 编译和链接的源代码。

我打算将该代码移植到 Mac 并继续用 C 编写代码(抱歉,没有 obj-c)。有没有办法在 XCode 上创建项目,添加现有代码以便我可以使用 XCode 和 IDE,编译和调试代码并生成 Mac Makefile?

感谢您的帮助

【问题讨论】:

  • 你在使用 carbon 在 mac 上运行应用吗?或者它是一个命令行工具? Xcode 也应该能够处理您的 make 文件。但是我认为它实际上不能生成makefile

标签: xcode xcode-template


【解决方案1】:

Apple 开发者文档中有一节介绍了将基于 makefile 的项目移植到 XCode 中。

“将 UNIX/Linux 应用程序移植到 OS X”

本小节最相关:“使用 XCode 构建 makefile 项目”

https://developer.apple.com/library/content/documentation/Porting/Conceptual/PortingUnix/preparing/preparing.html#//apple_ref/doc/uid/TP40002849-BBCJABGC

【讨论】:

    【解决方案2】:

    将 C 代码导入 Xcode:

    1. 启动xcode
    2. 新项目
    3. 选择标准工具之类的东西。应该读 c 命令行工具。
    4. 将一个或多个文件拖到主项目窗口。这是创建新项目时出现的第一个窗口。我的项目名称是 xaBitHoist。我将文件放在 xaBitHoist > src 上。

    只是构建。似乎默认为 main.c

    更改启动程序或添加参数 Project > New Project Executable。

    xcode的在线帮助很好。

    祝你好运。

    罗伯特

    【讨论】:

      【解决方案3】:

      新建项目 -> 其他 -> 外部构建系统

      (在新项目中)

      展开“目标”

      选择模板创建的目标

      按回车

      编辑目标设置:

      • 默认情况下,它使用/usr/bin/make 进行调用。如果您想使用其他构建系统,那么您将需要配置更多内容。
      • 对于 Makefile,您需要将构建设置窗口的“目录”字段设置为包含要构建的相应 Makefile 的目录。

      请注意,使用 makefile 时会丢失一些集成。

      您可以通过将源添加到项目(拖放)而不是将它们与目标关联来重新获得其中的一部分。

      为了改进导航和代码完成,您可能需要创建第二个(虚拟)目标(例如静态库),以便 ide 解析您的程序。然后,您将源添加到虚拟静态库中,并将 makefile 设置为静态库的“依赖项”(因此它被构建,因此它首先被构建)。

      【讨论】:

      • 谢谢。我假设如果我用我的源代码指向目录,它会从那里读取makefile?另外,如何将源文件添加到项目中以便 XCode 读取和理解?
      • 谢谢。我尝试将文件拖放到项目中创建的新目标(静态 BSD lib)中,但 xcode 不会接受它。我怎样才能添加它们?我在项目树中没有看到“源”。
      • 哦 - 您将文件放入项目中(如果在 Xc3 上,则放入 Groups 和 Files 中,或者 Xc4 中的 Project Navigator 中),而不是放入目标本身。然后 xcode 会询问您是否要将它们添加到目标中。使用菜单:1) 在 Groups and Files (Xc3) 或 Project Navigator (Xc4) 中选择项目 2) Xc3: Project->Add to Project... Xc4: File->Add Files...
      • 所以,我有一个 Makefile 目标,然后是一个 BSD 静态库目标。我将源代码文件添加到项目中(称为 TestProject)。我仍然无法对这些文件做任何事情,我的意思是,我还不如在文本编辑中打开它们,它会是一样的。难道我做错了什么?如何将这些源文件绑定到静态库目标?项目、目标、工作区有什么区别...我使用的是 XCode 4
      • 哦,我明白了。太好了,所以现在如果我点击“构建”,它将在 Makefile 上运行 make,对吗?
      【解决方案4】:

      您可以使用现有的 makefile 进行构建,并创建一个带有自定义目标的包装器项目,该目标具有“运行脚本”构建阶段,该构建阶段只调用您的 makefile。这意味着您也可以使用调试器,但您可能无法充分利用具有自动完成功能等的编辑器。

      【讨论】:

        猜你喜欢
        • 2023-03-29
        • 2019-11-16
        • 1970-01-01
        • 1970-01-01
        • 2017-05-16
        • 1970-01-01
        • 2017-06-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多