如何在XCode / Visual Studio中保持跨平台库同步

时间:2012-11-26 15:58:58

标签: c++ xcode visual-studio-2010 cross-platform

我正在开发一个具有PC(windows)组件和iPad组件的系统。我想在iPad和PC之间共享一些C ++代码。有没有办法在项目之间自动同步源文件?换句话说,如果我在PC上工作并添加一个新的.h / .cpp对,我可以让某人获得xcode项目来识别新文件并将它们添加到xcode项目中吗?同样可以让Visual Studio识别PC端的新文件。

如果无法做到这一点,那么在Mac和PC上为这个共享库使用Eclipse会有意义吗?我是否应该考虑在Apple和Windows开发环境中维护项目?

1 个答案:

答案 0 :(得分:5)

首先,您需要为所有目标平台配置一个公共构建配置。当然,这意味着您无法使用与IDE相关的构建配置(Visual Studio,XCode等)。您需要一个跨平台的构建系统。 IMO的最佳候选人是CMake。使用该系统,CMakeLists.txt文件是项目的主要配置文件。必须将任何新的源文件/标头添加到该配置文件(或其中一个)。它可能比使用in-IDE工具添加头/源对更不方便,但优点是您只需将源文件添加一次到构建配置(CMakeLists.txt)并且它将适用到您正在使用的所有操作系统和IDE。 CMake可用于为大多数IDE生成项目文件,以便它们可以轻松使用,而一些更好的IDE也直接支持CMake构建配置(这使得它更加方便)。就个人而言,我不知道任何严重的跨平台项目没有采用独立的跨平台构建系统(如CMake或具有类似功能的其他人),所以这不再是一场辩论了。

其次,您需要一种方法来同步两个系统之间的文件,我认为这两个系统是物理上分开的(即,不在虚拟框中或其他任何东西)。有一些简单的程序,如rsync和其他更多的GUI-ish程序来同步文件夹及其所有底层文件。但是,对于源代码,使用版本控制系统要方便得多。就个人而言,我建议Git,特别是对于个人项目。版本控制系统有许多功能,但基本的是它为您提供了一种简单的方法来保持源文件夹的同步并跟踪对代码所做的更改(例如,允许回溯跟踪是否存在突然出现的bug出现了最新的变化)。即使你是独自工作,使用这样一个系统仍然是完全值得的(即使你真的不需要它,它也会给你一个使用它的经验)。 Git是一个分散的系统,这意味着您不需要用于版本控制的中央服务器,它对于存储库的每个副本都是本地的。这允许你(就像我为一些简单的项目所做的那样),一个完全本地的存储库集,例如,我有两台我使用的计算机,每个计算机上都有一个存储库的副本,还有一个存储库的副本在外部硬盘驱动器上,因此所有同步都在计算机和外部驱动器之间进行本地完成(额外的好处是不断更新所有内容的三重备份)。您还可以使用中央服务器,例如github,这样更方便。