2012-11-26 61 views
2

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

如果这是不可能的,在Mac和PC上为这个共享库使用Eclipse是否合理?在Apple和Windows开发环境中维护项目还有其他选择吗?

+0

使用'cmake'生成器? – 2012-11-26 16:01:35

+0

cmake的自动化程度如何?如果我使用visual studio创建一个新文件,是否需要手动更新cmake配置文件才能使该文件出现在生成的xcode项目中? – morgancodes

+0

@morgancodes是的,当使用cmake时,cmake配置文件(“CMakeLists”)成为主信息源。 – Angew

回答

5

首先,您需要一个适用于所有目标平台的通用构建配置。当然,这意味着你不能使用与IDE相关的构建配置(Visual Studio,XCode等)。你需要一个跨平台的构建系统。 IMO的最佳人选是CMake。使用该系统,CMakeLists.txt文件是您项目的主要配置文件。任何新的源文件/头文件都必须添加到该配置文件(或其中之一)。这可能比使用in-IDE工具添加头/源对方便一点,但好处是您只需将源文件添加到构建配置(CMakeLists.txt)一次,并且它将应用到您正在使用的所有操作系统和IDE。 CMake可用于为大多数IDE生成项目文件,以便它们可以轻松使用,而一些更好的IDE也直接支持CMake构建配置(这使得它更加方便)。就我个人而言,我不知道任何严重的跨平台项目没有采用独立的跨平台构建系统(如CMake或其他具有类似功能的构建系统),所以这不再是一场辩论。其次,你需要一种方法来在两个系统之间同步你的文件,我认为这两个系统在物理上是分开的(即不是在一个虚拟的盒子里或者其他)。有一些简单的程序,如rsync和其他更多的GUI-ish程序来同步文件夹及其所有底层文件。但是,对于源代码,使用版本控制系统要方便得多。我个人建议Git,特别是个人项目。版本控制系统有许多功能,但基本的是它可以让你简单地保持源文件夹的同步,并跟踪代码所做的更改(例如,允许回溯错误突然出现在最新的变化之外)。即使你一个人工作,使用这样一个系统仍然是完全值得的(即使你并不真的需要它,它也会给你一个工作体验)。 Git是一个分散的系统,这意味着您不需要用于版本控制的中央服务器,它对于每个版本库都是本地的。这可以让你拥有(就像我为一些简单的项目所做的那样),一个完全本地的存储库集合,例如,我有两台与之一起工作的计算机,每个存储库的副本以及一个存储库的副本在外部硬盘驱动器上,所有的同步都是在计算机和外部驱动器之间进行本地完成的(同时还有不断更新的所有内容的最新三重备份)。您也可以使用中央服务器,如github,这更方便。