繁体   English   中英

XCode工作区中的代码库项目与目标的比较

[英]Projects Vs Targets for a codebase in an XCode Workspace

有关目标项目概念的XCode文档很有帮助,但是我仍然不确定在我的情况下可以使用的最佳实践。

我在一个SVN信息库中有一个现有的代码库(用于Windows和iOS),该代码库刚刚从一个测试应用程序重构为一个中央库和一个应用程序。 想法是随着时间的推移,更多的应用程序将使用此中央库。

一个XCode项目将一组源文件映射到一个或多个目标,因此我可以为我的整个代码库提供一个项目,为库提供一个目标,为每个应用程序提供一个目标。 但是,每个应用程序显然都有其自己的代码,因此以这种方式将所有源代码放入单个项目中似乎有些笨拙。

或者,我可以有一个包含多个项目的工作区,每个项目都有一个目标。 这是我为Windows构建设置的方式的更多内容,在Windows构建中,Visual Studio解决方案对应于Xcode工作区,而VC ++项目将与XCode项目的组织方式巧妙地映射。

但是在这种情况下是否有“正常” /预期的方式来做事,我应该尝试遵循一些非正式的标准,以免其他开发人员感到困惑?

如今,目标用于构建依赖关系并在项目​​内分离构建。 您会看到它主要用于单元测试。 有时候,您可能有不同的二进制文件可用于不同的处理器或操作系统,但这在当今的应用商店世界中很少见。

通常,每个可执行文件都有一个项目。 这使得它可以独立工作,并且可以独立编译而不会互相干扰。

您可以在项目中包含项目,这使您可以独立处理它们并为其建立依赖关系。 您可以设置一个项目以构建一个子项目,并将其可执行文件存放在项目可以链接到的位置。

对于您的情况,我想说一个具有可执行文件和测试目标的库项目。 然后将该项目包含在其他项目中,您可以链接到文件或将文件移动到其他项目的位置。 这是如何做的要点。

我知道您没有提到它们,但基本上已添加了工作区,以使您可以在单个窗口中打开多个项目。 您可以拥有所有测试应用程序和参考代码,而无需在后台进行编译。 我觉得它非常方便。

关键区别在于,每个目标仅在一个项目中,但是一个项目可以是许多工作空间的一部分。 这样一来,您就可以拥有项目Lib,AppA和AppB,然后再选择WorkspaceA = [AppA,Lib]和WorkspaceB = [AppB,Lib],这样开发AppA的开发人员就不必加载与AppB相关的内容。 作为一般建议,最好为您可能希望独立共享的内容创建项目。

当我在一个或多个项目(Xcode或另一个IDE)之间共享代码时,通常将共享部分编译为二进制文件,然后将其链接到特定于代码的项目。

在您的设置中,类似一个Xcode项目,只是从共享的C ++文件编译一个dylib,然后是一个与该dylib链接的主Xcode项目。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM